Args: ['/home/pi/klipper/klippy/klippy.py', '/home/pi/printer_data/config/printer.cfg', '-l', '/home/pi/printer_data/logs/klippy.log', '-I', '/home/pi/printer_data/comms/klippy.serial', '-a', '/home/pi/printer_data/comms/klippy.sock']
Git version: 'v0.12.0-396-gb7233d119-dirty'
Untracked files: klippy/extras/beacon.py, klippy/extras/gcode_shell_command.py, klippy/extras/linear_movement_vibrations.py, klippy/extras/ratos.py, klippy/extras/ratos_homing.py, klippy/extras/resonance_generator.py, klippy/extras/z_offset_probe.py, klippy/kinematics/ratos_hybrid_corexy.py
Branch: master
Remote: origin
Tracked URL: https://github.com/Klipper3d/klipper.git
CPU: 4 core ?
Python: '3.9.2 (default, Mar 20 2025, 22:21:41) \n[GCC 10.2.1 20210110]'
=============== Log rollover at Tue Aug 5 08:23:31 2025 ===============
Args: ['/home/pi/klipper/klippy/klippy.py', '/home/pi/printer_data/config/printer.cfg', '-l', '/home/pi/printer_data/logs/klippy.log', '-I', '/home/pi/printer_data/comms/klippy.serial', '-a', '/home/pi/printer_data/comms/klippy.sock']
Git version: 'v0.12.0-396-gb7233d119-dirty'
Untracked files: klippy/extras/beacon.py, klippy/extras/gcode_shell_command.py, klippy/extras/linear_movement_vibrations.py, klippy/extras/ratos.py, klippy/extras/ratos_homing.py, klippy/extras/resonance_generator.py, klippy/extras/z_offset_probe.py, klippy/kinematics/ratos_hybrid_corexy.py
Branch: master
Remote: origin
Tracked URL: https://github.com/Klipper3d/klipper.git
CPU: 4 core ?
Python: '3.9.2 (default, Mar 20 2025, 22:21:41) \n[GCC 10.2.1 20210110]'
Start printer at Tue Aug 5 08:23:34 2025 (1754378614.5 51.8)
===== Config file =====
[mcu rpi]
serial = /tmp/klipper_host_mcu
[board_pins btt-octopus-11]
aliases =
x_step_pin=PF13,
x_dir_pin=PF12,
x_enable_pin=PF14,
x_uart_pin=PC4,
x_diag_pin=PG6,
x_endstop_pin=PG6,
dual_carriage_step_pin=PF9,
dual_carriage_dir_pin=PF10,
dual_carriage_enable_pin=PG2,
dual_carriage_uart_pin=PF2,
dual_carriage_diag_pin=PG12,
dual_carriage_endstop_pin=PG12,
y_step_pin=PG0,
y_dir_pin=PG1,
y_enable_pin=PF15,
y_uart_pin=PD11,
y_diag_pin=PG9,
y_endstop_pin=PG9,
y1_step_pin=PG4,
y1_dir_pin=PC1,
y1_enable_pin=PA0,
y1_uart_pin=PC7,
y1_diag_pin=PG11,
y1_endstop_pin=PG11,
z0_step_pin=PC13,
z0_dir_pin=PF0,
z0_enable_pin=PF1,
z0_uart_pin=PE4,
z0_diag_pin=PG13,
z1_step_pin=PE2,
z1_dir_pin=PE3,
z1_enable_pin=PD4,
z1_uart_pin=PE1,
z1_diag_pin=PG14,
z2_step_pin=PE6,
z2_dir_pin=PA14,
z2_enable_pin=PE0,
z2_uart_pin=PD3,
z2_diag_pin=PG15,
e_step_pin=PF11,
e_dir_pin=PG3,
e_enable_pin=PG5,
e_uart_pin=PC6,
e_heater_pin=PA2,
e_sensor_pin=PF4,
stepper_spi_mosi_pin=PA7,
stepper_spi_miso_pin=PA6,
stepper_spi_sclk_pin=PA5,
adxl345_cs_pin=PA15,
bltouch_sensor_pin=PB7,
bltouch_control_pin=PB6,
probe_pin=PB7,
fan_part_cooling_pin=PA8,
fan_toolhead_cooling_pin=PE5,
fan_controller_board_pin=PD12,
heater_bed_heating_pin=PA1,
heater_bed_sensor_pin=PF3,
4p_fan_part_cooling_pin=null,
4p_fan_part_cooling_tach_pin=null,
4p_toolhead_cooling_pin=null,
4p_toolhead_cooling_tach_pin=null,
4p_controller_board_pin=null,
4p_controller_board_tach_pin=null
[mcu]
serial = /dev/RatOS/btt-octopus-11
[temperature_sensor Octopus_V1.1_F446]
sensor_type = temperature_mcu
[adxl345 controlboard]
cs_pin = PA15
spi_bus = spi3
[board_pins toolboard_t0]
mcu = toolboard_t0
aliases =
e_step_pin=PD0,
e_dir_pin=PD1,
e_enable_pin=PD2,
e_uart_pin=PA15,
e_heater_pin=PB13,
e_sensor_pin=PA3,
stepper_spi_mosi_pin=null,
stepper_spi_miso_pin=null,
stepper_spi_sclk_pin=null,
adxl345_cs_pin=PB12,
bltouch_sensor_pin=PB8,
bltouch_control_pin=PB9,
probe_pin=PB9,
fan_part_cooling_pin=PA0,
fan_toolhead_cooling_pin=PA1,
fan_controller_board_pin=null,
heater_bed_heating_pin=null,
heater_bed_sensor_pin=null,
4p_fan_part_cooling_pin=null,
4p_fan_part_cooling_tach_pin=null,
4p_toolhead_cooling_pin=null,
4p_toolhead_cooling_tach_pin=null,
4p_controller_board_pin=null,
4p_controller_board_tach_pin=null
[mcu toolboard_t0]
serial = /dev/RatOS/btt-ebb42-12-t0
[temperature_sensor EBB42_v1.2_T0]
sensor_type = temperature_mcu
sensor_mcu = toolboard_t0
[adxl345 toolboard_t0]
axes_map = x, z, y
cs_pin = toolboard_t0:PB12
spi_software_mosi_pin = toolboard_t0:PB11
spi_software_miso_pin = toolboard_t0:PB2
spi_software_sclk_pin = toolboard_t0:PB10
[board_pins toolboard_t1]
mcu = toolboard_t1
aliases =
e_step_pin=PD0,
e_dir_pin=PD1,
e_enable_pin=PD2,
e_uart_pin=PA15,
e_heater_pin=PB13,
e_sensor_pin=PA3,
stepper_spi_mosi_pin=null,
stepper_spi_miso_pin=null,
stepper_spi_sclk_pin=null,
adxl345_cs_pin=PB12,
bltouch_sensor_pin=PB8,
bltouch_control_pin=PB9,
probe_pin=PB9,
fan_part_cooling_pin=PA0,
fan_toolhead_cooling_pin=PA1,
fan_controller_board_pin=null,
heater_bed_heating_pin=null,
heater_bed_sensor_pin=null,
4p_fan_part_cooling_pin=null,
4p_fan_part_cooling_tach_pin=null,
4p_toolhead_cooling_pin=null,
4p_toolhead_cooling_tach_pin=null,
4p_controller_board_pin=null,
4p_controller_board_tach_pin=null
[mcu toolboard_t1]
serial = /dev/RatOS/btt-ebb42-12-t1
[temperature_sensor EBB42_v1.2_T1]
sensor_type = temperature_mcu
sensor_mcu = toolboard_t1
[adxl345 toolboard_t1]
axes_map = x, z, y
cs_pin = toolboard_t1:PB12
spi_software_mosi_pin = toolboard_t1:PB11
spi_software_miso_pin = toolboard_t1:PB2
spi_software_sclk_pin = toolboard_t1:PB10
[gcode_macro RatOS]
variable_homing = "endstops"
variable_z_probe = "static"
variable_sensorless_x_current = 0.6
variable_sensorless_y_current = 0.9
variable_safe_home_x = "middle"
variable_safe_home_y = "middle"
variable_driver_type_x = "tmc2209"
variable_driver_type_y = "tmc2209"
variable_stowable_probe_stop_on_error = False
variable_chamber_filter_enable = True
variable_chamber_filter_speed = 0.5
variable_chamber_filter_disable_speed = 1.0
variable_chamber_filter_enable_at = "after_print_start"
variable_chamber_filter_disable_period = 300
variable_chamber_filter_disable_bed_temp = 0
variable_chamber_heater_enable = True
variable_chamber_heater_bed_temp = 115
variable_chamber_heater_preheating_temp = 150
variable_chamber_heater_heating_temp_offset = 25
variable_chamber_heater_control_external_heater = False
variable_chamber_heater_air_circulation_enable = True
variable_chamber_heater_air_circulation_fan_speed = 0.35
variable_chamber_heater_air_circulation_y_pos = 0
variable_chamber_heater_air_circulation_z_pos = 100
variable_chamber_heater_extra_fan_speed = 1.0
variable_chamber_heater_filter_fan_speed = 1.0
variable_led_status_action = 0.0,1.0,1.0
variable_led_status_success = 0.0,1.0,0.0
variable_led_status_error = 1.0,0.0,1.0
variable_led_status_on = 1.0,1.0,1.0
variable_led_status_off = 0.0,0.0,1.0
variable_led_status_standby = 0.1,0.1,0.1
variable_led_status_heating = 1.0,0.0,0.0
variable_led_status_cooling = 0.0,0.0,1.0
variable_calibrate_bed_mesh = True
variable_adaptive_mesh = True
variable_start_print_park_in = "back"
variable_start_print_park_z_height = 50
variable_end_print_park_in = "back"
variable_pause_print_park_in = "back"
variable_end_print_park_z_hop = 20
variable_nozzle_priming = "primeblob"
variable_nozzle_prime_start_x = "max"
variable_nozzle_prime_start_y = "min"
variable_nozzle_prime_direction = "auto"
variable_nozzle_prime_bridge_fan = 102
variable_probe_for_priming_result = None
variable_probe_for_priming_end_result = None
variable_probe_for_priming_result_t1 = None
variable_probe_for_priming_end_result_t1 = None
variable_probe_for_priming_disable_mesh_constraints = False
variable_adaptive_prime_offset_threshold = -1.0
variable_last_z_offset = None
variable_runout_park_in = "front"
variable_enable_unload_tip_forming = False
variable_filament_unload_length = 150
description = RatOS variable storage macro, will echo variables to the console when run.
variable_relative_extrusion = True
variable_force_absolute_position = False
variable_preheat_extruder = True
variable_preheat_extruder_temp = 150
variable_macro_travel_speed = 600
variable_macro_travel_accel = 8000
variable_macro_z_speed = 15
variable_bed_margin_x = [59.8, 59.8]
variable_bed_margin_y = [14.35, 33.65]
variable_printable_x_min = 0
variable_printable_x_max = 0
variable_printable_y_min = 0
variable_printable_y_max = 0
variable_end_print_motors_off = True
variable_status_color_ok = "00FF00"
variable_status_color_error = "FF0000"
variable_status_color_unknown = "FFFF00"
variable_end_print_retract_filament = 10
gcode =
ECHO_RATOS_VARS
variable_auto_center_subject = False
variable_toolchange_zhop = 2.0
variable_toolchange_zspeed = 25
variable_toolchange_sync_fans = False
variable_toolchange_combined_zhop = False
variable_toolchange_travel_speed = 600
variable_toolchange_travel_accel = 8000
variable_toolchange_extrusion = 2.0
variable_toolchange_retraction = 2.0
variable_toolchange_feedrate = 7200
variable_toolchange_prepurging_timer = 0
variable_toolchange_standby_temp = -1
variable_toolchange_purge = 25
variable_toolchange_first_purge = 50
variable_beacon_bed_mesh_scv = 25
variable_beacon_contact_z_homing = False
variable_beacon_contact_start_print_true_zero = True
variable_beacon_contact_wipe_before_true_zero = True
variable_beacon_contact_true_zero_temp = 150
variable_beacon_contact_prime_probing = True
variable_beacon_contact_expansion_compensation = True
variable_beacon_contact_bed_mesh = False
variable_beacon_contact_bed_mesh_samples = 2
variable_beacon_contact_z_tilt_adjust = False
variable_beacon_contact_z_tilt_adjust_samples = 2
variable_beacon_scan_compensation_enable = True
variable_beacon_scan_compensation_profile = "Contact"
variable_beacon_scan_compensation_probe_count = 15,15
variable_beacon_contact_poke_bottom_limit = -1
variable_homing_x = "endstop"
variable_homing_y = "endstop"
variable_default_toolhead = 0
variable_adxl_chip = ["adxl345 toolboard_t0", "adxl345 toolboard_t1"]
variable_shaper_x_freq = [0, 0, 0, 0]
variable_shaper_y_freq = [0, 0, 0, 0]
variable_shaper_x_type = ["mzv", "mzv", "mzv", "mzv"]
variable_shaper_y_type = ["mzv", "mzv", "mzv", "mzv"]
variable_x_driver_types = ["tmc2209"]
variable_x_axes = ["x"]
variable_y_driver_types = ["tmc2209", "tmc2209"]
variable_y_axes = ["y", "y1"]
variable_z_driver_types = ["tmc2209", "tmc2209", "tmc2209"]
variable_z_axes = ["z", "z1", "z2"]
variable_home_y_first = True
[ratos_homing]
axes = xyz
z_hop = 15
z_hop_speed = 15
gcode =
_LED_ON
{% set prev_stop_on_error = printer["gcode_macro RatOS"].stowable_probe_stop_on_error %}
{% if printer["dual_carriage"] is defined %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set target_idex_mode = printer["dual_carriage"].carriage_1|lower %}
_IDEX_SINGLE
_SELECT_TOOL T={default_toolhead} TOOLSHIFT=false
{% endif %}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=stowable_probe_stop_on_error VALUE=True
M400
G90
{% set X = true if params.X is defined else false %}
{% set Y = true if params.Y is defined else false %}
{% set Z = true if params.Z is defined else false %}
{% if printer["gcode_macro RatOS"].home_y_first|default(false)|lower == 'true' %}
HOME_Y X={X} Y={Y} Z={Z}
HOME_X X={X} Y={Y} Z={Z}
{% else %}
HOME_X X={X} Y={Y} Z={Z}
HOME_Y X={X} Y={Y} Z={Z}
{% endif %}
HOME_Z X={X} Y={Y} Z={Z}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=stowable_probe_stop_on_error VALUE={prev_stop_on_error}
{% if printer["dual_carriage"] is defined %}
{% if target_idex_mode == "copy" %}
_IDEX_COPY
{% elif target_idex_mode == "mirror" %}
_IDEX_MIRROR
{% endif %}
{% endif %}
[gcode_macro HOME_X]
gcode =
{% set x_homed = 'x' in printer.toolhead.homed_axes %}
{% set homing = printer["gcode_macro RatOS"].homing|lower %}
{% set homing_x = printer["gcode_macro RatOS"].homing_x|lower %}
{% set homing_x = homing_x if homing_x else homing %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set X = true if params.X|lower == 'true' else false %}
{% set Y = true if params.Y|lower == 'true' else false %}
{% set Z = true if params.Z|lower == 'true' else false %}
DEBUG_ECHO PREFIX="HOME_X" MSG="printable_x_max: {printable_x_max}, safe_home_x: {safe_home_x}, axis_maximum.x: {printer.toolhead.axis_maximum.x}, bed_margin_x: {printer['gcode_macro RatOS'].bed_margin_x}"
{% if X or not Y and not Z %}
{% if homing_x == 'endstop' %}
G28 X
{% elif homing_x == 'sensorless' %}
{% if printer["dual_carriage"] is defined %}
{ action_emergency_stop("sensorless homing not supported on IDEX!") }
{% endif %}
HOME_X_SENSORLESS
{% else %}
{ action_emergency_stop("expected RatOS variable_homing_x to be 'sensorless' 'endstop' or variable_homing to be 'sensorless' or 'endstops' but found {} and {}".format(homing_x, homing)) }
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set parking_position = printer["gcode_macro T%s" % (0 if default_toolhead==1 else 1)].parking_position|float %}
SET_DUAL_CARRIAGE CARRIAGE={0 if default_toolhead==1 else 1} MODE=PRIMARY
G1 X{parking_position} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead} MODE=PRIMARY
{% endif %}
{% set x_homed = True %}
G0 X{safe_home_x} F{speed}
M400
{% endif %}
[gcode_macro HOME_Y]
gcode =
{% set y_homed = 'y' in printer.toolhead.homed_axes %}
{% set homing = printer["gcode_macro RatOS"].homing|lower %}
{% set homing_y = printer["gcode_macro RatOS"].homing_y|lower %}
{% set homing_y = homing_y if homing_y else homing %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set X = true if params.X|lower == 'true' else false %}
{% set Y = true if params.Y|lower == 'true' else false %}
{% set Z = true if params.Z|lower == 'true' else false %}
DEBUG_ECHO PREFIX="HOME_Y" MSG="printable_y_max: {printable_y_max}, safe_home_y: {safe_home_y}, axis_maximum.y: {printer.toolhead.axis_maximum.y}, bed_margin_y: {printer['gcode_macro RatOS'].bed_margin_y}"
{% if Y or not X and not Z %}
{% if homing_y == 'endstop' %}
G28 Y
{% elif homing_y == 'sensorless' %}
HOME_Y_SENSORLESS
{% else %}
{ action_emergency_stop("expected RatOS variable_homing_y to be 'sensorless' 'endstop' or variable_homing to be 'sensorless' or 'endstops' but found {} and {}".format(homing_y, homing)) }
{% endif %}
{% set y_homed = True %}
G0 Y{safe_home_y} F{speed}
{% endif %}
[gcode_macro HOME_Z]
gcode =
{% set x_homed = 'x' in printer.toolhead.homed_axes %}
{% set y_homed = 'y' in printer.toolhead.homed_axes %}
{% set z_probe = printer["gcode_macro RatOS"].z_probe %}
{% set beacon_contact_z_homing = true if printer["gcode_macro RatOS"].beacon_contact_z_homing|default(false)|lower == 'true' else false %}
{% set X = true if params.X|lower == 'true' else false %}
{% set Y = true if params.Y|lower == 'true' else false %}
{% set Z = true if params.Z|lower == 'true' else false %}
DEBUG_ECHO PREFIX="HOME_Z" MSG="x_homed: {x_homed}, y_homed: {y_homed}, z_probe: {z_probe}, beacon_contact_z_homing: {beacon_contact_z_homing}"
{% if Z or not Y and not X %}
RATOS_ECHO MSG="Homing Z"
{% if x_homed == False or y_homed == False %}
{ action_emergency_stop("X and Y must be homed before homing Z") }
{% else %}
{% if z_probe == "stowable" %}
DEPLOY_PROBE
_MOVE_TO_SAFE_Z_HOME
{% if printer.configfile.settings.beacon is defined and beacon_contact_z_homing %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
{% else %}
G28 Z
{% endif %}
_Z_HOP
STOW_PROBE
{% else %}
_MOVE_TO_SAFE_Z_HOME
{% if printer.configfile.settings.beacon is defined and beacon_contact_z_homing %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
{% else %}
G28 Z
{% endif %}
_Z_HOP
{% endif %}
{% endif %}
{% endif %}
[gcode_macro HOME_X_SENSORLESS]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="home_x_sensorless"
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
M204 S1000
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endif %}
G4 P300
G28 X
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].x_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer.configfile.config[x_driver].run_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].y_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer.configfile.config[y_driver].run_current}
{% endif %}
G4 P300
RESTORE_TOOLHEAD_SETTINGS KEY="home_x_sensorless"
[gcode_macro HOME_Y_SENSORLESS]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="home_y_sensorless"
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
M204 S1000
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endif %}
G4 P300
G28 Y
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].x_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer.configfile.config[x_driver].run_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].y_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer.configfile.config[y_driver].run_current}
{% endif %}
G4 P300
RESTORE_TOOLHEAD_SETTINGS KEY="home_y_sensorless"
[gcode_macro _Z_HOP]
description = Move Z axis up by Z_HOP distance at Z_HOP_SPEED. In relative mode it will move Z axis up by Z_HOP distance. In absolute mode it will move Z axis to Z_HOP distance.
gcode =
{% set z_hop = printer.configfile.config.ratos_homing.z_hop|float %}
{% set z_hop_speed = printer.configfile.config.ratos_homing.z_hop_speed|float * 60 %}
G0 Z{z_hop} F{z_hop_speed}
[gcode_macro _MOVE_TO_SAFE_Z_HOME]
description = Move to safe home position with optional Z_HOP (pass Z_HOP=True as parameter)
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% if params.Z_HOP is defined %}
_Z_HOP
{% endif %}
DEBUG_ECHO PREFIX="_MOVE_TO_SAFE_Z_HOME" MSG="axis_maximum.x: {printer.toolhead.axis_maximum.x}, axis_maximum.y: {printer.toolhead.axis_maximum.y}, bed_margin_x: {printer['gcode_macro RatOS'].bed_margin_x}, bed_margin_y: {printer['gcode_macro RatOS'].bed_margin_y}, safe_home_x: {safe_home_x}, safe_home_y: {safe_home_y}, printable_x_max: {printable_x_max}, printable_y_max: {printable_y_max}"
G0 X{safe_home_x} Y{safe_home_y} F{speed}
[gcode_macro MAYBE_HOME]
description = Only home unhomed axis
variable_is_kinematic_position_overriden = False
gcode =
{% if printer["gcode_macro MAYBE_HOME"].is_kinematic_position_overriden|lower == 'true' %}
RATOS_ECHO MSG="SET_CENTER_KINEMATIC_POSITION has been abused. Homing all axes. Please refrain from using SET_CENTER_KINEMATIC_POSITION outside of debugging purposes."
G28
SET_GCODE_VARIABLE MACRO=MAYBE_HOME VARIABLE=is_kinematic_position_overriden VALUE=False
{% else %}
{% set axes = '' %}
{% set isHomed = true %}
{% set axesToHome = '' %}
{% if params.X is defined %}
{% set axes = axes ~ 'X ' %}
{% if 'x' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'X ' %}
{% endif %}
{% endif %}
{% if params.Y is defined %}
{% set axes = axes ~ 'Y ' %}
{% if 'y' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Y ' %}
{% endif %}
{% endif %}
{% if params.Z is defined %}
{% set axes = axes ~ 'Z ' %}
{% if 'z' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Z ' %}
{% endif %}
{% endif %}
{% if params.X is not defined and params.Y is not defined and params.Z is not defined %}
{% set axes = '' %}
{% if 'x' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'X ' %}
{% endif %}
{% if 'y' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Y ' %}
{% endif %}
{% if 'z' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Z ' %}
{% endif %}
{% endif %}
{% if isHomed is false %}
RATOS_ECHO MSG="Homing {axesToHome}"
G28 {axesToHome}
{% else %}
RATOS_ECHO MSG="All requested axes already homed, skipping.."
{% endif %}
{% endif %}
[gcode_macro PID_CALIBRATE_HOTEND]
description = Perform a PID calibration test for a given extruder heater.
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set temp = params.TEMP|default(220)|int %}
DEBUG_ECHO PREFIX="PID_CALIBRATE_HOTEND" MSG="TEMP={temp}"
{% if printer["dual_carriage"] is not defined %}
RATOS_ECHO MSG="PID calibration hotend heater T0 at {temp}°C..."
PID_CALIBRATE HEATER=extruder TARGET={temp}
_CONSOLE_SAVE_CONFIG
{% else %}
{% if toolhead==0 or toolhead==1 %}
RATOS_ECHO MSG="PID calibration hotend heater T{toolhead} at {temp}°C..."
PID_CALIBRATE HEATER=extruder{'' if toolhead==0 else toolhead} TARGET={temp}
_CONSOLE_SAVE_CONFIG
{% else %}
RATOS_ECHO MSG="Please select toolhead! 0 = left, 1 = right toolhead"
{% endif %}
{% endif %}
_LEARN_MORE_CALIBRATION
[gcode_macro PID_CALIBRATE_BED]
description = Perform a PID calibration test for the bed heater.
gcode =
{% set temp = params.TEMP|default(80)|int %}
DEBUG_ECHO PREFIX="PID_CALIBRATE_BED" MSG="TEMP={temp}"
RATOS_ECHO MSG="PID calibration bed heater at {temp}°C..."
PID_CALIBRATE HEATER=heater_bed TARGET={temp}
_CONSOLE_SAVE_CONFIG
_LEARN_MORE_CALIBRATION
[gcode_macro PID_CALIBRATE_CHAMBER_HEATER]
description = Perform a PID calibration test for the chamber heater.
gcode =
{% set temp = params.TEMP|default(150)|int %}
DEBUG_ECHO PREFIX="PID_CALIBRATE_CHAMBER_HEATER" MSG="TEMP={temp}"
{% if printer["heater_generic chamber_heater"] is defined %}
RATOS_ECHO MSG="PID calibration chamber heater at {temp}°C..."
PID_CALIBRATE HEATER=chamber_heater TARGET={temp}
_CONSOLE_SAVE_CONFIG
_LEARN_MORE_CALIBRATION
{% else %}
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_heater" %}
{% set link_text = "RatOS Chamber Heater" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="No chamber heater found" TYPE="warning" MSG={line_1}
{% endif %}
[gcode_macro INITIALIZE_PA_TUNING]
description = Start a pressure advance tuning tower.
gcode =
{% set start = params.START|default(0.0)|float %}
{% set factor = params.FACTOR|default(0.001)|float %}
{% set layer_number = printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|default(0)|int %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% if is_printing_gcode and layer_number < 2 %}
DEBUG_ECHO PREFIX="START_PA_TOWER" MSG="START: {start}, FACTOR: {factor}"
RATOS_ECHO MSG="Starting presssure advance tuning tower..."
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START={start} FACTOR={factor}
{% endif %}
_LEARN_MORE_CALIBRATION
[gcode_macro CHAMBER_FILTER_ON]
gcode =
{% if printer["fan_generic filter"] is defined %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Activating chamber filter..."
_CHAMBER_FILTER_TURN_ON
{% else %}
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_filter" %}
{% set link_text = "RatOS Chamber Filter" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="No chamber filter found" TYPE="warning" MSG={line_1}
{% endif %}
[gcode_macro CHAMBER_FILTER_OFF]
gcode =
{% if printer["fan_generic filter"] is defined %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Deactivating chamber filter..."
_CHAMBER_FILTER_TURN_OFF
{% else %}
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_filter" %}
{% set link_text = "RatOS Chamber Filter" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="No chamber filter found" TYPE="warning" MSG={line_1}
{% endif %}
[gcode_macro _CHAMBER_FILTER_ON]
gcode =
{% set at = params.AT|default('')|lower %}
{% set chamber_filter_enable = true if printer["gcode_macro RatOS"].chamber_filter_enable|default(true)|lower == 'true' else false %}
{% set chamber_filter_enable_at = printer["gcode_macro RatOS"].chamber_filter_enable_at|default('after_print_start')|lower %}
DEBUG_ECHO PREFIX="_CHAMBER_FILTER_ON" MSG="at: {at}, chamber_filter_enable: {chamber_filter_enable}, chamber_filter_enable_at: {chamber_filter_enable_at}, chamber_filter_speed: {chamber_filter_speed}"
{% if chamber_filter_enable and printer["fan_generic filter"] is defined %}
{% if chamber_filter_enable_at == at %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Activating chamber filter..."
_CHAMBER_FILTER_TURN_ON AT={at}
{% if chamber_filter_enable_at == "print_end" %}
_LED_CHAMBER_FILTER_ON
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _CHAMBER_FILTER_OFF]
gcode =
{% set chamber_filter_enable = true if printer["gcode_macro RatOS"].chamber_filter_enable|default(true)|lower == 'true' else false %}
{% set filter_disable_period = printer["gcode_macro RatOS"].chamber_filter_disable_period|default(0)|int %}
{% set filter_disable_bed_temp = printer["gcode_macro RatOS"].chamber_filter_disable_bed_temp|default(0)|int %}
DEBUG_ECHO PREFIX="_CHAMBER_FILTER_OFF" MSG="chamber_filter_enable: {chamber_filter_enable}, filter_disable_period: {filter_disable_period}, filter_disable_bed_temp: {filter_disable_bed_temp}"
{% if chamber_filter_enable and printer["fan_generic filter"] is defined %}
{% if filter_disable_period > 0 %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Waiting {filter_disable_period} seconds before turning chamber filter off..."
UPDATE_DELAYED_GCODE ID=_CHAMBER_FILTER_OFF_TIMER DURATION={filter_disable_period}
{% endif %}
{% if filter_disable_bed_temp > 0 %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Waiting for bed temp to cool down to {filter_disable_bed_temp}°C to turn filter off..."
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=0 MAXIMUM={filter_disable_bed_temp}
_CHAMBER_FILTER_TURN_OFF
_LED_CHAMBER_FILTER_OFF
{% endif %}
{% endif %}
[delayed_gcode _CHAMBER_FILTER_OFF_TIMER]
gcode =
DEBUG_ECHO PREFIX="_CHAMBER_FILTER_OFF_TIMER" MSG="executed"
_CHAMBER_FILTER_TURN_OFF
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Chamber filter turned off!"
_LED_CHAMBER_FILTER_OFF
[gcode_macro _CHAMBER_FILTER_TURN_ON]
gcode =
{% set at = params.AT|default('')|lower %}
{% set chamber_filter_speed = printer["gcode_macro RatOS"].chamber_filter_speed|default(0)|float %}
{% if at == "print_end" %}
{% set chamber_filter_speed = printer["gcode_macro RatOS"].chamber_filter_disable_speed|default(0)|float %}
{% endif %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_FILTER_OFF_TIMER DURATION=0
SET_FAN_SPEED FAN=filter SPEED={chamber_filter_speed}
[gcode_macro _CHAMBER_FILTER_TURN_OFF]
gcode =
SET_FAN_SPEED FAN=filter SPEED=0
[gcode_macro _CHAMBER_FILTER_SANITY_CHECK]
gcode =
{% set chamber_filter_enable = true if printer["gcode_macro RatOS"].chamber_filter_enable|default(true)|lower == 'true' else false %}
{% set filter_disable_period = printer["gcode_macro RatOS"].chamber_filter_disable_period|default(0)|int %}
{% set filter_disable_bed_temp = printer["gcode_macro RatOS"].chamber_filter_disable_bed_temp|default(0)|int %}
{% if chamber_filter_enable and printer["fan_generic filter"] is defined %}
{% if filter_disable_bed_temp > 0 and filter_disable_period > 0 %}
_LEARN_MORE_CHAMBER_FILTER
{action_respond_info("Wrong chamber filter options configured! Set 'filter_disable_bed_temp' or 'filter_disable_period' variable, not both.")}
{% endif %}
{% if filter_disable_bed_temp == 0 and filter_disable_period == 0 %}
_LEARN_MORE_CHAMBER_FILTER
{action_respond_info("Wrong chamber filter options configured! Set 'filter_disable_bed_temp' or 'filter_disable_period' variable.")}
{% endif %}
{% endif %}
[gcode_macro CHAMBER_HEATER_ON]
gcode =
{% set chamber_temp = params.CHAMBER_TEMP|default(45)|int %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp} IS_FROM_START_PRINT=False
[gcode_macro CHAMBER_HEATER_OFF]
gcode =
_CHAMBER_HEATER_OFF
[gcode_macro _CHAMBER_HEATER_ON]
variable_chamber_temp = 0
gcode =
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set start_chamber_temp = params.START_CHAMBER_TEMP|default(0)|int %}
{% set is_from_start_print = true if params.IS_FROM_START_PRINT|default(True)|lower == 'true' else false %}
{% set z = printer["gcode_macro RatOS"].start_print_park_z_height|float %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set chamber_heater_enable = true if printer["gcode_macro RatOS"].chamber_heater_enable|default(true)|lower == 'true' else false %}
{% set chamber_heater_bed_temp = printer["gcode_macro RatOS"].chamber_heater_bed_temp|default(115)|int %}
{% set chamber_heater_preheating_temp = printer["gcode_macro RatOS"].chamber_heater_preheating_temp|default(150)|int %}
{% set chamber_heater_heating_temp_offset = printer["gcode_macro RatOS"].chamber_heater_heating_temp_offset|default(20)|int %}
{% set chamber_heater_control_external_heater = true if printer["gcode_macro RatOS"].chamber_heater_control_external_heater|default(true)|lower == 'true' else false %}
{% set chamber_heater_air_circulation_enable = true if printer["gcode_macro RatOS"].chamber_heater_air_circulation_enable|default(true)|lower == 'true' else false %}
{% set chamber_heater_air_circulation_fan_speed = printer["gcode_macro RatOS"].chamber_heater_air_circulation_fan_speed|default(0.35)|float %}
{% set chamber_heater_air_circulation_y_pos = printer["gcode_macro RatOS"].chamber_heater_air_circulation_y_pos|default(0)|float %}
{% set chamber_heater_air_circulation_z_pos = printer["gcode_macro RatOS"].chamber_heater_air_circulation_z_pos|default(100)|float %}
DEBUG_ECHO PREFIX="_CHAMBER_HEATER_ON" MSG="chamber_heater_enable: {chamber_heater_enable}, chamber_heater_preheating_temp: {chamber_heater_preheating_temp}, chamber_heater_heating_temp_offset: {chamber_heater_heating_temp_offset}, bed_temp: {bed_temp}, chamber_temp: {chamber_temp}, start_chamber_temp: {start_chamber_temp}"
{% if chamber_heater_enable and chamber_temp > 0 and chamber_heater_bed_temp > 0 %}
_LED_HEATING
RATOS_ECHO MSG="Preheating chamber to {(start_chamber_temp if start_chamber_temp > 0 else chamber_temp)}°C..."
{% set chamber_temp_sensor = "extruder" %}
{% if printer["dual_carriage"] is defined and default_toolhead == 1 %}
{% set chamber_temp_sensor = "extruder1" %}
{% endif %}
{% if printer["temperature_sensor chamber"] is defined %}
{% set chamber_temp_sensor = "temperature_sensor chamber" %}
{% endif %}
{% set current_chamber_temp = printer['%s' % chamber_temp_sensor].temperature|int %}
{% set needs_heating = current_chamber_temp < (start_chamber_temp if start_chamber_temp > 0 else chamber_temp) %}
{% if needs_heating %}
_USER_CHAMBER_HEATER_BEFORE_PREHEATING
{% endif %}
{% if needs_heating %}
{% if chamber_heater_air_circulation_enable and chamber_heater_air_circulation_fan_speed > 0 %}
{% if not is_from_start_print %}
MAYBE_HOME
{% endif %}
G0 Z{chamber_heater_air_circulation_z_pos} F{z_speed}
G0 Y{chamber_heater_air_circulation_y_pos} F{speed}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={chamber_heater_air_circulation_fan_speed if default_toolhead == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={chamber_heater_air_circulation_fan_speed if default_toolhead == 1 else 0}
{% else %}
M106 S{(255 * chamber_heater_air_circulation_fan_speed)}
{% endif %}
{% else %}
{% if is_from_start_print %}
G0 Z{z} F{z_speed}
{% endif %}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=_CHAMBER_HEATER_ON VARIABLE=chamber_temp VALUE={chamber_temp}
{% if needs_heating %}
M140 S{chamber_heater_bed_temp}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET={chamber_heater_preheating_temp}
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=1.0
{% endif %}
{% endif %}
{% if needs_heating %}
_CHAMBER_HEATER_EXTRA_FAN_ON
{% endif %}
{% if needs_heating %}
TEMPERATURE_WAIT SENSOR="{chamber_temp_sensor}" MINIMUM={(start_chamber_temp if start_chamber_temp > 0 else chamber_temp)}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET={(chamber_temp + chamber_heater_heating_temp_offset)}
{% endif %}
{% endif %}
{% if printer["fan_generic filter"] is defined %}
{% if printer["gcode_macro RatOS"].chamber_heater_filter_fan_speed|default(0)|float > 0 %}
SET_FAN_SPEED FAN=filter SPEED=0
_CHAMBER_FILTER_ON AT="before_print_start"
{% endif %}
{% endif %}
{% if needs_heating %}
{% if chamber_heater_air_circulation_enable and chamber_heater_air_circulation_fan_speed > 0 %}
G28 Z
{% endif %}
{% endif %}
{% if needs_heating %}
_USER_CHAMBER_HEATER_AFTER_PREHEATING
{% endif %}
{% if printer["temperature_sensor chamber"] is defined %}
{% if printer["heater_generic chamber_heater"] is defined %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=5
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined and chamber_heater_control_external_heater %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=5
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
{% else %}
M106 S0
{% endif %}
_LED_SUCCESS
{% endif %}
[gcode_macro _CHAMBER_HEATER_OFF]
gcode =
RATOS_ECHO MSG="Deactivating chamber heater..."
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=0
SET_GCODE_VARIABLE MACRO=_CHAMBER_HEATER_ON VARIABLE=chamber_temp VALUE=0
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET=0
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=0.0
{% endif %}
_CHAMBER_HEATER_EXTRA_FAN_OFF
[delayed_gcode _CHAMBER_HEATER_CONTROL]
initial_duration = 0.
gcode =
{% set chamber_temp = printer["gcode_macro _CHAMBER_HEATER_ON"].chamber_temp|default(0)|int %}
{% set chamber_heater_heating_temp_offset = printer["gcode_macro RatOS"].chamber_heater_heating_temp_offset|default(20)|int %}
{% set current_chamber_temp = printer['temperature_sensor chamber'].temperature|int %}
{% if current_chamber_temp < chamber_temp %}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET={(chamber_temp + chamber_heater_heating_temp_offset)}
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=1.0
{% endif %}
{% endif %}
{% if current_chamber_temp >= chamber_temp %}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET=0
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=0.0
{% endif %}
{% endif %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=5
[gcode_macro _CHAMBER_HEATER_EXTRA_FAN_ON]
gcode =
{% set chamber_heater_extra_fan_speed = printer["gcode_macro RatOS"].chamber_heater_extra_fan_speed|default(0.0)|float %}
{% if printer["fan_generic chamber_heater_extra_fan"] is defined %}
{% if chamber_heater_extra_fan_speed > 0 %}
SET_FAN_SPEED FAN=chamber_heater_extra_fan SPEED={chamber_heater_extra_fan_speed}
{% endif %}
{% endif %}
[gcode_macro _CHAMBER_HEATER_EXTRA_FAN_OFF]
gcode =
{% if printer["fan_generic chamber_heater_extra_fan"] is defined %}
SET_FAN_SPEED FAN=chamber_heater_extra_fan SPEED=0
{% endif %}
[gcode_macro _USER_CHAMBER_HEATER_BEFORE_PREHEATING]
description = Will be executed before chamber preheating, only if heating is needed.
gcode =
[gcode_macro _USER_CHAMBER_HEATER_AFTER_PREHEATING]
description = Will be executed after chamber preheating, only if heating was needed.
gcode =
[gcode_macro _LED_START_PRINTING]
gcode =
_LED_ACTION
[gcode_macro _LED_START_PRINTING_ERROR]
gcode =
_LED_ERROR
[gcode_macro _LED_PRINTING]
gcode =
_LED_ON TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_PAUSE]
gcode =
_LED_ACTION
[gcode_macro _LED_CHAMBER_FILTER_ON]
gcode =
_LED_ACTION
[gcode_macro _LED_CHAMBER_FILTER_OFF]
gcode =
_LED_STANDBY
[gcode_macro _LED_LOADING_FILAMENT]
gcode =
_LED_ACTION TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_LOADED]
gcode =
_LED_SUCCESS TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_RUNOUT]
gcode =
_LED_ERROR TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_CLOG]
gcode =
_LED_ERROR TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_UNLOADING_FILAMENT]
gcode =
_LED_ACTION TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_UNLOADED]
gcode =
_LED_SUCCESS TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_DEACTIVATE_TOOLHEAD]
gcode =
_LED_OFF TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_TOOLHEAD_STANDBY]
gcode =
_LED_STANDBY TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_TOOLHEAD_WAKEUP]
gcode =
_LED_ACTION TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_MOTORS_OFF]
gcode =
_LED_STANDBY
_LED_VAOC_OFF
[gcode_macro _LED_INPUT_SHAPER_START]
gcode =
_LED_ACTION
[gcode_macro _LED_INPUT_SHAPER_END]
gcode =
_LED_ON
[gcode_macro _LED_BEACON_CALIBRATION_START]
gcode =
_LED_ACTION
[gcode_macro _LED_BEACON_CALIBRATION_END]
gcode =
_LED_ON
[gcode_macro _LED_BEACON_CALIBRATION_ERROR]
gcode =
_LED_ERROR
[gcode_macro _LED_VAOC_ON]
gcode =
{% if printer['neopixel vaoc_led'] is defined %}
SET_LED LED=vaoc_led RED=1.0 GREEN=1.0 BLUE=1.0
{% endif %}
[gcode_macro _LED_VAOC_OFF]
gcode =
{% if printer['neopixel vaoc_led'] is defined %}
SET_LED LED=vaoc_led RED=0.0 GREEN=0.0 BLUE=0.0
{% endif %}
[gcode_macro _LED_ACTION]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_action %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_SUCCESS]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_success %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_HEATING]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_heating %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_COOLING]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_cooling %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_ERROR]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_error %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_ON]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_on %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_OFF]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_off %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_STANDBY]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_standby %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_SET]
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set r = params.R|default(0)|float %}
{% set g = params.G|default(0)|float %}
{% set b = params.B|default(0)|float %}
{% if toolhead >= 0 %}
{% if printer['neopixel nozzle_led_t%s' % toolhead] is defined %}
SET_LED LED={'nozzle_led_t%s' % toolhead} RED={r} GREEN={g} BLUE={b} SYNC=0
{% endif %}
{% else %}
{% if printer['neopixel nozzle_led_t0'] is defined %}
SET_LED LED={'nozzle_led_t0'} RED={r} GREEN={g} BLUE={b} SYNC=0
{% endif %}
{% if printer['neopixel nozzle_led_t1'] is defined %}
SET_LED LED={'nozzle_led_t1'} RED={r} GREEN={g} BLUE={b} SYNC=0
{% endif %}
{% endif %}
_USER_LED_SET { rawparams }
[gcode_macro _USER_LED_SET]
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set r = params.R|default(0)|float %}
{% set g = params.G|default(0)|float %}
{% set b = params.B|default(0)|float %}
[gcode_macro LOAD_FILAMENT]
description = Loads new filament. Note: be careful with PETG, make sure you inspect the tip of your filament before loading to avoid jams.
variable_ignore_min_extrude_temp = True
gcode =
_LEARN_MORE_FILAMENT
{% set temp = params.TEMP|default(220)|int %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set filament_name = params._NAME|default('')|string %}
{% set filament_type = params._TYPE|default('')|string %}
{% if filament_name == '' or filament_type == '' %}
{% set filament_name = 'unknown' %}
{% set filament_type = 'unknown' %}
{% endif %}
{% if printer["dual_carriage"] is not defined %}
_DEFAULT_LOAD_FILAMENT TEMP={temp} NAME={filament_name} TYPE={filament_type}
{% else %}
{% if not printer.pause_resume.is_paused %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Loading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
{% set paused_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% if paused_idex_mode == 'copy' or paused_idex_mode == 'mirror' %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set toolhead = printer["gcode_macro PAUSE"].idex_toolhead|int %}
{% endif %}
{% endif %}
{% endif %}
{% if toolhead==0 or toolhead==1 %}
_IDEX_LOAD_FILAMENT TEMP={temp} TOOLHEAD={toolhead} NAME={filament_name} TYPE={filament_type}
{% else %}
RATOS_ECHO MSG="Please select toolhead! 0 = left, 1 = right toolhead"
{% endif %}
{% endif %}
[gcode_macro _DEFAULT_LOAD_FILAMENT]
description = Load filament macro for non IDEX printers.
gcode =
{% set temp = params.TEMP|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set color_ok = printer["gcode_macro RatOS"].status_color_ok|string %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_DEFAULT_LOAD_FILAMENT" MSG="TEMP={temp}"
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_unknown}"'
_LED_LOADING_FILAMENT TOOLHEAD=0
SAVE_GCODE_STATE NAME=load_state
{% if printer.extruder.temperature|int < temp or printer.extruder.can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating extruder to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={temp}
_LOAD_FILAMENT TOOLHEAD=0
RESTORE_GCODE_STATE NAME=load_state
{% if filament_name != '' and filament_type != '' %}
SAVE_VARIABLE VARIABLE=t0_filament VALUE="('{filament_type}', '{filament_name}', {temp})"
{% if printer["gcode_macro T0"].filament_name is defined and printer["gcode_macro T0"].filament_type is defined and printer["gcode_macro T0"].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='"{filament_name}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='"{filament_type}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE={temp}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_ok}"'
_LED_FILAMENT_LOADED TOOLHEAD=0
[gcode_macro _IDEX_LOAD_FILAMENT]
description = Load filament macro for IDEX printer.
gcode =
{% set temp = params.TEMP|int %}
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set color_ok = printer["gcode_macro RatOS"].status_color_ok|string %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_IDEX_LOAD_FILAMENT" MSG="TEMP: {temp}, TOOLHEAD: {toolhead}"
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_unknown}"'
_LED_LOADING_FILAMENT TOOLHEAD={toolhead}
{% if "xyz" not in printer.toolhead.homed_axes %}
_SELECT_TOOL T={toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% set target_extruder = 'extruder%s' % ('' if toolhead == 0 else toolhead) %}
ACTIVATE_EXTRUDER EXTRUDER={target_extruder}
{% if not printer.pause_resume.is_paused %}
{% if printer[target_extruder].temperature|int < temp or printer[target_extruder].can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating T{toolhead} to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={temp}
{% endif %}
_LOAD_FILAMENT TOOLHEAD={toolhead} TEMP={temp}
{% if filament_name != '' and filament_type != '' %}
SAVE_VARIABLE VARIABLE=t{toolhead}_filament VALUE="('{filament_type}', '{filament_name}', {temp})"
{% if printer["gcode_macro T%s" % toolhead].filament_name is defined and printer["gcode_macro T%s" % toolhead].filament_type is defined and printer["gcode_macro T%s" % toolhead].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_name VALUE='"{filament_name}"'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_type VALUE='"{filament_type}"'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_temp VALUE={temp}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_ok}"'
_LED_FILAMENT_LOADED TOOLHEAD={toolhead}
[gcode_macro _LOAD_FILAMENT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_LOAD_FILAMENT" MSG="TOOLHEAD: {toolhead}"
_MOVE_TO_LOADING_POSITION TOOLHEAD={toolhead}
_LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE TOOLHEAD={toolhead}
_LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE TOOLHEAD={toolhead}
_CLEANING_MOVE TOOLHEAD={toolhead}
[gcode_macro _LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set extruder_load_speed = printer["gcode_macro T%s" % toolhead].extruder_load_speed|float * 60 %}
{% set extruder_gear_to_cooling_position_distance = printer["gcode_macro T%s" % toolhead].extruder_gear_to_cooling_position_distance|float %}
DEBUG_ECHO PREFIX="_LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE" MSG="TOOLHEAD: {toolhead}"
RATOS_ECHO MSG="Loading filament into hotend.."
G92 E0
G0 E{extruder_gear_to_cooling_position_distance} F{extruder_load_speed}
G92 E0
M400
RATOS_ECHO MSG="Filament loaded into hotend."
[gcode_macro _LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set load_speed = printer["gcode_macro T%s" % toolhead].filament_load_speed|float * 60 %}
{% set filament_loading_nozzle_offset = printer["gcode_macro T%s" % toolhead].filament_loading_nozzle_offset|float %}
{% set cooling_position_to_nozzle_distance = printer["gcode_macro T%s" % toolhead].cooling_position_to_nozzle_distance|float %}
{% set purge_after_load = printer["gcode_macro T%s" % toolhead].purge_after_load|float %}
DEBUG_ECHO PREFIX="_LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE" MSG="TOOLHEAD: {toolhead}"
RATOS_ECHO MSG="Loading filament into nozzle... Please wait!"
G92 E0
G0 E{cooling_position_to_nozzle_distance + filament_loading_nozzle_offset} F{load_speed}
G92 E0
G4 P1000
_PURGE_FILAMENT TOOLHEAD={toolhead} E={purge_after_load}
RATOS_ECHO MSG="Filament loaded into nozzle!"
[gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT" MSG="TOOLHEAD: {toolhead}"
{% set filament_grabbing_length = printer["gcode_macro T%s" % toolhead].filament_grabbing_length|float %}
{% set filament_grabbing_speed = printer["gcode_macro T%s" % toolhead].filament_grabbing_speed|float %}
{% set resume_after_insert = true if printer["gcode_macro T%s" % toolhead].resume_after_insert|default(true)|lower == 'true' else false %}
{% set enable_insert_detection = true if printer["gcode_macro T%s" % toolhead].enable_insert_detection|default(true)|lower == 'true' else false %}
{% set current_idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% if enable_insert_detection %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT" MSG="toolhead: {toolhead}, filament_grabbing_length: {filament_grabbing_length}, filament_grabbing_speed: {filament_grabbing_speed}, current_idex_mode: {current_idex_mode}"
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Loading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
FORCE_MOVE STEPPER={'extruder%s' % ('' if toolhead == 0 else toolhead)} DISTANCE={filament_grabbing_length} VELOCITY={filament_grabbing_speed}
M400
{% if printer.pause_resume.is_paused %}
LOAD_FILAMENT TOOLHEAD={toolhead}
{% if resume_after_insert %}
RESUME
{% endif %}
{% else %}
{% if not printer.virtual_sdcard.is_active %}
LOAD_FILAMENT TOOLHEAD={toolhead}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_INSERT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_ON_BOWDEN_FILAMENT_SENSOR_INSERT" MSG="TOOLHEAD: {toolhead}"
[gcode_macro _PURGE_BEFORE_UNLOAD]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set purge_before_unload = printer["gcode_macro T%s" % toolhead].purge_before_unload|float %}
DEBUG_ECHO PREFIX="_PURGE_BEFORE_UNLOAD" MSG="TOOLHEAD: {toolhead}"
{% if purge_before_unload > 0 %}
G92 E0
G0 E{purge_before_unload} F300
G92 E0
M400
{% endif %}
[gcode_macro _PURGE_FILAMENT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set e = params.E|int %}
{% set r = params.R|default(0)|int %}
DEBUG_ECHO PREFIX="_PURGE_FILAMENT" MSG="TOOLHEAD: {toolhead}, E: {e}"
{% if e > 0 %}
G92 E0
G0 E{e} F300
G92 E0
M400
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={0.4 if toolhead == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={0.4 if toolhead == 1 else 0}
{% else %}
M106 S{(255 * 0.4)}
{% endif %}
{% endif %}
G4 P3000
{% if r > 0 %}
G92 E0
G0 E-{r} F300
G92 E0
M400
{% endif %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
{% else %}
M106 S0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _MOVE_TO_PARKING_POSITION]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_MOVE_TO_PARKING_POSITION" MSG="TOOLHEAD: {toolhead}"
{% if printer["dual_carriage"] is defined or printer["rmmu_hub"] is defined %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["gcode_macro T%s" % toolhead].has_oozeguard|default(false)|lower == 'true' %}
{% if printer["gcode_macro T%s" % toolhead].parking_position is defined %}
{% set parking_position = printer["gcode_macro T%s" % toolhead].parking_position|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
G1 X{parking_position} F{speed}
M400
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _MOVE_TO_LOADING_POSITION]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_MOVE_TO_LOADING_POSITION" MSG="TOOLHEAD: {toolhead}"
{% if printer["dual_carriage"] is defined or printer["rmmu_hub"] is defined %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["gcode_macro T%s" % toolhead].has_oozeguard|default(false)|lower == 'true' %}
{% if printer["gcode_macro T%s" % toolhead].loading_position is defined %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% if act_t == toolhead %}
{% set loading_position = printer["gcode_macro T%s" % toolhead].loading_position|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
G1 X{loading_position} F{speed}
M400
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _CLEANING_MOVE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% if printer["dual_carriage"] is defined or printer["rmmu_hub"] is defined %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["gcode_macro T%s" % toolhead].has_oozeguard|default(false)|lower == 'true' %}
{% if printer["gcode_macro T%s" % toolhead].parking_position is defined and printer["gcode_macro T%s" % toolhead].loading_position is defined %}
{% set loading_position = printer["gcode_macro T%s" % toolhead].loading_position|float %}
{% set parking_position = printer["gcode_macro T%s" % toolhead].parking_position|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set cleaning_position = loading_position %}
{% if loading_position == parking_position %}
{% if loading_position > 0 %}
{% set cleaning_position = loading_position - 30 %}
{% else %}
{% set cleaning_position = loading_position + 30 %}
{% endif %}
{% endif %}
G1 X{parking_position} F{speed}
G1 X{cleaning_position} F{speed}
G1 X{parking_position} F{speed}
G1 X{cleaning_position} F{speed}
G1 X{parking_position} F{speed}
M400
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _START_PRINT_BED_MESH]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="start_print_bed_mesh"
SET_MACRO_TRAVEL_SETTINGS
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set X=[params.X0|default(-1)|float, params.X1|default(-1)|float] %}
{% set Y=[params.Y0|default(-1)|float, params.Y1|default(-1)|float] %}
DEBUG_ECHO PREFIX="_START_PRINT_BED_MESH" MSG="idex_mode: {idex_mode}, X: {X}, Y: {Y}"
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set X=[0, printable_x_max] %}
{% endif %}
{% set beacon_bed_mesh_scv = printer["gcode_macro RatOS"].beacon_bed_mesh_scv|default(25)|int %}
{% set beacon_contact_bed_mesh_samples = printer["gcode_macro RatOS"].beacon_contact_bed_mesh_samples|default(2)|int %}
{% set beacon_contact_bed_mesh = true if printer["gcode_macro RatOS"].beacon_contact_bed_mesh|default(false)|lower == 'true' else false %}
{% if printer.configfile.settings.beacon is defined and not beacon_contact_bed_mesh %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={beacon_bed_mesh_scv}
{% endif %}
{% set default_profile = printer["gcode_macro RatOS"].bed_mesh_profile|default('ratos') %}
{% if printer["gcode_macro RatOS"].calibrate_bed_mesh|lower == 'true' %}
BED_MESH_CLEAR
{% if printer["gcode_macro RatOS"].adaptive_mesh|lower == 'true' %}
CALIBRATE_ADAPTIVE_MESH PROFILE={default_profile} X0={X[0]} X1={X[1]} Y0={Y[0]} Y1={Y[1]} T={params.T|int} BOTH_TOOLHEADS={params.BOTH_TOOLHEADS} IDEX_MODE={idex_mode}
{% else %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile}
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% endif %}
BED_MESH_PROFILE LOAD={default_profile}
{% elif printer["gcode_macro RatOS"].bed_mesh_profile is defined %}
BED_MESH_CLEAR
BED_MESH_PROFILE LOAD={printer["gcode_macro RatOS"].bed_mesh_profile}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="start_print_bed_mesh"
[gcode_macro CALIBRATE_ADAPTIVE_MESH]
gcode =
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_contact_bed_mesh_samples = printer["gcode_macro RatOS"].beacon_contact_bed_mesh_samples|default(2)|int %}
{% set beacon_contact_bed_mesh = true if printer["gcode_macro RatOS"].beacon_contact_bed_mesh|default(false)|lower == 'true' else false %}
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set default_profile = params.PROFILE %}
{% set x0 = params.X0|default(-1)|float %}
{% set y0 = params.Y0|default(-1)|float %}
{% set x1 = params.X1|default(-1)|float %}
{% set y1 = params.Y1|default(-1)|float %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Recieved coordinates X0={x0} Y0={y0} X1={x1} Y1={y1}"
{% if x0 >= x1 or y0 >= y1 %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Invalid coordinates received. Please check your slicer settings. Falling back to full bed mesh."
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile}
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% else %}
{% set mesh_config = printer.configfile.config.bed_mesh %}
{% set min_x = mesh_config.mesh_min.split(",")[0]|float %}
{% set min_y = mesh_config.mesh_min.split(",")[1]|float %}
{% set max_x = mesh_config.mesh_max.split(",")[0]|float %}
{% set max_y = mesh_config.mesh_max.split(",")[1]|float %}
{% set mesh_x0 = [[x0, max_x]|min, min_x]|max %}
{% set mesh_y0 = [[y0, max_y]|min, min_y]|max %}
{% set mesh_x1 = [[x1, max_x]|min, min_x]|max %}
{% set mesh_y1 = [[y1, max_y]|min, min_y]|max %}
{% if mesh_x0 == min_x and mesh_y0 == min_y and mesh_x1 == max_x and mesh_y1 == max_y %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Print is using the full bed, falling back to full bed mesh."
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile}
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% else %}
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
DEPLOY_PROBE
{% endif %}
{% set probe_count_x = mesh_config.probe_count.split(",")[0]|int %}
{% if mesh_config.probe_count.split(",")|length == 2 %}
{% set probe_count_y = mesh_config.probe_count.split(",")[1]|int %}
{% else %}
{% set probe_count_y = mesh_config.probe_count.split(",")[0]|int %}
{% endif %}
{% set probe_x_step = (max_x - min_x) / probe_count_x %}
{% set probe_y_step = (max_y - min_y) / probe_count_y %}
{% set mesh_count_x = ([(mesh_x1 - mesh_x0) / probe_x_step, 3]|max)|int %}
{% set mesh_count_y = ([(mesh_y1 - mesh_y0) / probe_y_step, 3]|max)|int %}
{% set min_mesh_count = [mesh_count_x, mesh_count_y]|min %}
{% set max_mesh_count = [mesh_count_x, mesh_count_y]|max %}
{% set algorithm = mesh_config.algorithm %}
{% if algorithm|lower == 'lagrange' and max_mesh_count > 6 %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="cannot exceed a probe_count of 6 when using lagrange interpolation. Falling back to bicubic interpolation."
{% set algorithm = 'bicubic' %}
{% endif %}
{% if algorithm|lower == 'bicubic' and min_mesh_count < 4 %}
{% if max_mesh_count > 6 %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="invalid probe_count option when using bicubic interpolation. Combination of 3 points on one axis with more than 6 on another is not permitted. Forcing minimum mesh count to be 4."
{% set min_mesh_count = 4 %}
{% else %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="bicubic interpolation with a probe_count of less than 4 points detected. Forcing lagrange interpolation."
{% set algorithm = 'lagrange' %}
{% endif %}
{% endif %}
{% set mesh_count_x = ([min_mesh_count, mesh_count_x]|max)|int %}
{% set mesh_count_x = ([max_mesh_count, mesh_count_x]|min)|int %}
{% set mesh_count_y = ([min_mesh_count, mesh_count_y]|max)|int %}
{% set mesh_count_y = ([max_mesh_count, mesh_count_y]|min)|int %}
{% set should_prime = printer["gcode_macro RatOS"].nozzle_priming == 'primeblob' %}
{% if printer["dual_carriage"] is not defined %}
{% set probe_first = printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == "min" or printer["gcode_macro RatOS"].nozzle_prime_start_y|float(printable_y_max) < printable_y_max / 2 %}
{% else %}
{% set probe_first = printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == "min" or printer["gcode_macro RatOS"].nozzle_prime_start_y|float(printable_y_max) < printable_y_max / 2 %}
{% endif %}
{% if printer.configfile.settings.beacon is defined and printer.configfile.settings.beacon.mesh_runs % 2 != 0 and probe_first %}
{% set probe_first = false %}
{% elif printer.configfile.settings.beacon is defined and printer.configfile.settings.beacon.mesh_runs % 2 == 0 and not probe_first %}
{% set probe_first = true %}
{% endif %}
{% if should_prime and probe_first %}
{% if printer["dual_carriage"] is not defined %}
PROBE_FOR_PRIMING
{% else %}
{% if both_toolheads %}
PROBE_FOR_PRIMING TOOLHEAD=0 IDEX_MODE={idex_mode}
PROBE_FOR_PRIMING TOOLHEAD=1 IDEX_MODE={idex_mode}
{% else %}
PROBE_FOR_PRIMING TOOLHEAD={params.T|int} IDEX_MODE={idex_mode}
{% endif %}
{% endif %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="mesh coordinates X0={mesh_x0} Y0={mesh_y0} X1={mesh_x1} Y1={mesh_y1}"
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile} ALGORITHM={algorithm} MESH_MIN={mesh_x0},{mesh_y0} MESH_MAX={mesh_x1},{mesh_y1} PROBE_COUNT={mesh_count_x},{mesh_count_y} RELATIVE_REFERENCE_INDEX=-1
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile} ALGORITHM={algorithm} MESH_MIN={mesh_x0},{mesh_y0} MESH_MAX={mesh_x1},{mesh_y1} PROBE_COUNT={mesh_count_x},{mesh_count_y} RELATIVE_REFERENCE_INDEX=-1
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% if should_prime and not probe_first %}
{% if printer["dual_carriage"] is not defined %}
PROBE_FOR_PRIMING
{% else %}
{% if both_toolheads %}
PROBE_FOR_PRIMING TOOLHEAD=0 IDEX_MODE={idex_mode}
PROBE_FOR_PRIMING TOOLHEAD=1 IDEX_MODE={idex_mode}
{% else %}
PROBE_FOR_PRIMING TOOLHEAD={params.T|int} IDEX_MODE={idex_mode}
{% endif %}
{% endif %}
{% endif %}
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
STOW_PROBE
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M84]
rename_existing = M84.1
gcode =
M84.1
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
{% if printer["dual_carriage"] is defined %}
_SET_TOOLHEAD_OFFSET T={printer["gcode_macro RatOS"].default_toolhead|int} MOVE=0
SET_GCODE_VARIABLE MACRO=SET_PRESSURE_ADVANCE VARIABLE=snyc_toolheads VALUE=False
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE=False
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% if printer["gcode_macro _VAOC"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started VALUE=False
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started_at_temp VALUE=False
{% endif %}
SET_GCODE_OFFSET X=0 Y=0 Z=0 MOVE=0
_IDEX_SINGLE INIT=1
{% endif %}
SET_SKEW CLEAR=1
_LED_MOTORS_OFF
[gcode_macro M104]
rename_existing = M104.1
gcode =
{% set s = params.S|default(0)|int %}
{% set t = params.T|default(-1)|int %}
{% set t = 0 if t == -1 else t %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
DEBUG_ECHO PREFIX="M104" MSG="s: {s}, t: {t}"
{% if printer["gcode_macro T%s" % t] is defined %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set temperature_offset_t0 = printer["gcode_macro T0"].temperature_offset|default(0)|int %}
{% set temperature_offset_t1 = printer["gcode_macro T1"].temperature_offset|default(0)|int %}
{% set s0 = [s + temperature_offset_t0, 0]|max %}
{% set s1 = [s + temperature_offset_t1, 0]|max %}
{% if temperature_offset_t0 != 0 %}
RATOS_ECHO PREFIX="M104" MSG="Temperature offset of {temperature_offset_t0}°C added to toolhead T0."
{% endif %}
{% if temperature_offset_t1 != 0 %}
RATOS_ECHO PREFIX="M104" MSG="Temperature offset of {temperature_offset_t1}°C added to toolhead T1."
{% endif %}
{% else %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% set s = [s + temperature_offset, 0]|max %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="M104" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% endif %}
{% set is_in_standby = false %}
{% if printer["dual_carriage"] is defined %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
{% if toolchange_standby_temp > -1 %}
{% set is_in_standby = true if printer["gcode_macro T%s" % t].standby|default(false)|lower == 'true' else false %}
{% endif %}
{% endif %}
{% if not is_in_standby %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
M104.1 S{s0} T0
M104.1 S{s1} T1
{% else %}
M104.1 S{s} T{t}
{% endif %}
{% endif %}
[gcode_macro M109]
rename_existing = M109.1
gcode =
{% set s = params.S|default(0)|int %}
{% set t = params.T|default(-1)|int %}
{% set t = 0 if t == -1 else t %}
DEBUG_ECHO PREFIX="M109" MSG="s: {s}, t: {t}"
{% if printer["gcode_macro T%s" % t] is defined %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% set s = [s + temperature_offset, 0]|max %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="M109" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% set is_in_standby = false %}
{% if printer["dual_carriage"] is defined %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
{% if toolchange_standby_temp > -1 %}
{% set is_in_standby = true if printer["gcode_macro T%s" % t].standby|default(false)|lower == 'true' else false %}
{% endif %}
{% endif %}
{% if not is_in_standby %}
M109.1 S{s} T{t}
{% endif %}
[gcode_macro SET_HEATER_TEMPERATURE]
rename_existing = SET_HEATER_TEMPERATURE_BASE
gcode =
{% set heater = params.HEATER|default("") %}
{% set target = params.TARGET|default(0)|int %}
DEBUG_ECHO PREFIX="SET_HEATER_TEMPERATURE" MSG="heater: {heater}, target: {target}"
{% if heater|lower == "extruder" or heater|lower == "extruder1" %}
{% set t = 0 if heater|lower == "extruder" else 1 %}
{% if printer["gcode_macro T%s" % t] is defined and target > 0 %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% set target = [target + temperature_offset, 0]|max %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="SET_HEATER_TEMPERATURE" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% endif %}
SET_HEATER_TEMPERATURE_BASE HEATER="{heater}" TARGET={target}
[gcode_macro TEMPERATURE_WAIT]
rename_existing = TEMPERATURE_WAIT_BASE
gcode =
{% set sensor = params.SENSOR|default("") %}
{% set minimum = params.MINIMUM|default(-1)|int %}
{% set maximum = params.MAXIMUM|default(-1)|int %}
DEBUG_ECHO PREFIX="TEMPERATURE_WAIT" MSG="sensor: {sensor}, minimum: {minimum}, maximum: {maximum}"
{% if sensor|lower == "extruder" or sensor|lower == "extruder1" %}
{% set t = 0 if sensor|lower == "extruder" else 1 %}
{% if printer["gcode_macro T%s" % t] is defined and (minimum > 0 or maximum > 0) %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% if minimum > -1 %}
{% set minimum = [minimum + temperature_offset, 0]|max %}
{% endif %}
{% if maximum > -1 %}
{% set maximum = [maximum + temperature_offset, 0]|max %}
{% endif %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% endif %}
{% if minimum > -1 and maximum > -1 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Waiting for sensor: {sensor}, MINIMUM: {minimum}, MAXIMUM: {maximum}"
RATOS_ECHO MSG="please wait..."
TEMPERATURE_WAIT_BASE SENSOR="{sensor}" MINIMUM={minimum} MAXIMUM={maximum}
{% elif minimum > -1 and maximum == -1 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Waiting for sensor: {sensor}, MINIMUM: {minimum}"
RATOS_ECHO MSG="please wait..."
TEMPERATURE_WAIT_BASE SENSOR="{sensor}" MINIMUM={minimum}
{% elif minimum == -1 and maximum > -1 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Waiting for sensor: {sensor}, MAXIMUM: {maximum}"
RATOS_ECHO MSG="please wait..."
TEMPERATURE_WAIT_BASE SENSOR="{sensor}" MAXIMUM={maximum}
{% endif %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Temperature for toolhead T{t} reached."
[gcode_macro SET_GCODE_OFFSET]
rename_existing = SET_GCODE_OFFSET_ORG
gcode =
SET_GCODE_OFFSET_ORG { rawparams }
{% if printer.configfile.settings.beacon is defined and (params.Z_ADJUST is defined or params.Z is defined) %}
_BEACON_APPLY_RUNTIME_MULTIPLIER
{% endif %}
[gcode_macro SDCARD_PRINT_FILE]
rename_existing = SDCARD_PRINT_FILE_BASE
gcode =
{% if printer["ratos"] is defined %}
PROCESS_GCODE_FILE { rawparams }
{% else %}
SDCARD_PRINT_FILE_BASE { rawparams }
{% endif %}
[gcode_macro SKEW_PROFILE]
rename_existing = SKEW_PROFILE_BASE
variable_loaded_profile = ""
gcode =
{% if params.LOAD is defined %}
{% if printer.configfile.settings["skew_correction %s" % params.LOAD] is defined %}
SET_GCODE_VARIABLE MACRO=SKEW_PROFILE VARIABLE=loaded_profile VALUE='"{params.LOAD}"'
{% endif %}
{% endif %}
SKEW_PROFILE_BASE { rawparams }
[gcode_macro SET_SKEW]
rename_existing = SET_SKEW_BASE
gcode =
{% if params.CLEAR is defined %}
{% if params.CLEAR|default(0)|int == 1 %}
SET_GCODE_VARIABLE MACRO=SKEW_PROFILE VARIABLE=loaded_profile VALUE='""'
{% endif %}
{% endif %}
SET_SKEW_BASE { rawparams }
[gcode_macro SET_VELOCITY_LIMIT]
rename_existing = SET_VELOCITY_LIMIT_BASE
gcode =
{% if params.ACCEL_TO_DECEL is defined %}
{% if params.ACCEL is defined %}
{% set accel = params.ACCEL|float %}
{% else %}
{% set accel = printer.toolhead.max_accel|float %}
{% endif %}
{% if params.VELOCITY is defined %}
{% set velocity = params.VELOCITY|float %}
{% else %}
{% set velocity = printer.toolhead.max_velocity|float %}
{% endif %}
{% if params.SQUARE_CORNER_VELOCITY is defined %}
{% set scv = params.SQUARE_CORNER_VELOCITY|float %}
{% else %}
{% set scv = printer.toolhead.square_corner_velocity|float %}
{% endif %}
{% set mcr = params.ACCEL_TO_DECEL|float / accel %}
DEBUG_ECHO PREFIX="SET_VELOCITY_LIMIT" MSG="ACCEL={accel}, VELOCITY={velocity}, SQUARE_CORNER_VELOCITY={scv}, MINIMUM_CRUISE_RATIO={mcr}"
SET_VELOCITY_LIMIT_BASE ACCEL={accel} VELOCITY={velocity} SQUARE_CORNER_VELOCITY={scv} MINIMUM_CRUISE_RATIO={1-mcr}
{% else %}
SET_VELOCITY_LIMIT_BASE { rawparams }
{% endif %}
[gcode_macro _START_PRINT_PARK]
gcode =
{% set z = printer["gcode_macro RatOS"].start_print_park_z_height|float %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set start_print_park_in = printer["gcode_macro RatOS"].start_print_park_in %}
{% set start_print_park_x = printer["gcode_macro RatOS"].start_print_park_x %}
{% if start_print_park_in == 'primeblob' %}
{% set z = 3 %}
{% endif %}
{% if printer["dual_carriage"] is defined and not (printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
{% if printer["gcode_macro RatOS"].start_print_park_x is defined and printer["gcode_macro RatOS"].start_print_park_x != '' %}
RATOS_ECHO PREFIX="WARNING" MSG="start_print_park_x is ignored for IDEX printers"
{% endif %}
PARK_TOOLHEAD
G90
{% endif %}
_PARK LOCATION={start_print_park_in} X={start_print_park_x}
G0 Z{z} F{z_speed}
[gcode_macro _END_PRINT_PARK]
gcode =
{% if printer["dual_carriage"] is defined %}
{% if printer["gcode_macro RatOS"].end_print_park_x is defined and printer["gcode_macro RatOS"].end_print_park_x != '' %}
RATOS_ECHO PREFIX="WARNING" MSG="end_print_park_x is ignored for IDEX printers"
{% endif %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
_IDEX_SINGLE X={parking_position}
PARK_TOOLHEAD
G90
{% endif %}
_PARK LOCATION={printer["gcode_macro RatOS"].end_print_park_in} X={printer["gcode_macro RatOS"].end_print_park_x}
[gcode_macro _PARK]
gcode =
{% set x = params.X %}
{% set location = params.LOCATION|default('back')|lower %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set nozzle_prime_start_x = printer["gcode_macro RatOS"].nozzle_prime_start_x %}
{% set nozzle_prime_start_y = printer["gcode_macro RatOS"].nozzle_prime_start_y %}
{% set nozzle_priming = printer["gcode_macro RatOS"].nozzle_priming|lower %}
CACHE_TOOLHEAD_SETTINGS KEY="park"
SET_MACRO_TRAVEL_SETTINGS
{% if x != '' %}
{% if x|float >= printer.toolhead.axis_minimum.x + 5 and x|float <= printable_x_max - 5 %}
{% set park_x = x|float %}
{% else %}
{action_respond_info('The requested X co-ordinate is outside the defined axis bounds - using defaults')}
{% set park_x = printable_x_max / 2 %}
{% endif %}
{% else %}
{% set park_x = printable_x_max / 2 %}
{% endif %}
{% set park_y = printable_y_max - 15 %}
{% if location == 'front' %}
{% set park_y = printer.toolhead.axis_minimum.y + 5 %}
{% elif location == 'center' %}
{% set park_y = printable_y_max / 2 %}
{% elif location == 'primeblob' and printer["dual_carriage"] is defined %}
{% set park_y = printable_y_max - 15 %}
{% endif %}
{% if location == 'primeblob' and printer["dual_carriage"] is not defined %}
{% if (nozzle_priming == 'primeblob' or nozzle_priming == 'primeline') %}
{% if nozzle_prime_start_x|lower == 'min' %}
{% set park_x = 5 %}
{% elif nozzle_prime_start_x|lower == 'max' %}
{% set park_x = printable_x_max - 5 %}
{% else %}
{% set park_x = nozzle_prime_start_x|float %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set park_y = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set park_y = printable_y_max - 5 %}
{% else %}
{% set park_y = nozzle_prime_start_y|float %}
{% endif %}
{% endif %}
{% endif %}
G90
{% if printer["dual_carriage"] is not defined %}
G0 X{park_x} Y{park_y} F{speed}
{% else %}
G0 Y{park_y} F{speed}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="park"
[gcode_macro SAVE_PROBE_RESULT]
gcode =
{% set beacon_contact_prime_probing = true if printer["gcode_macro RatOS"].beacon_contact_prime_probing|default(false)|lower == 'true' else false %}
{% set last_z_offset = 9999.9 %}
{% if printer.configfile.settings.beacon is defined %}
{% set current_z = printer.toolhead.position.z|float %}
{% if beacon_contact_prime_probing %}
{% set last_z_offset = printer.beacon.last_z_result %}
{% else %}
{% set last_z_offset = printer.beacon.last_sample.dist - current_z %}
{% endif %}
{% elif printer.configfile.settings.bltouch is defined %}
{% set config_offset = printer.configfile.settings.bltouch.z_offset|float %}
{% set last_z_offset = printer.probe.last_z_result - config_offset %}
{% elif printer.configfile.settings.probe is defined %}
{% set config_offset = printer.configfile.settings.probe.z_offset|float %}
{% set last_z_offset = printer.probe.last_z_result - config_offset %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Saving offset adjustment of {last_z_offset} in {params.VARIABLE|default('last_z_offset')}"
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE={params.VARIABLE|default('last_z_offset')} VALUE={last_z_offset}
[gcode_macro PROBE_FOR_PRIMING]
gcode =
{% set probe_for_priming_disable_mesh_constraints = true if printer["gcode_macro RatOS"].probe_for_priming_disable_mesh_constraints|default(false)|lower == 'true' else false %}
{% if printer["gcode_macro RatOS"].nozzle_priming|lower != 'false' %}
SAVE_GCODE_STATE NAME=probe_for_priming_state
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Probing the prime location.."
CACHE_TOOLHEAD_SETTINGS KEY="probe_for_priming"
SET_MACRO_TRAVEL_SETTINGS
{% set t = params.TOOLHEAD|default(-1)|int %}
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set nozzle_prime_start_x = printer["gcode_macro RatOS"].nozzle_prime_start_x %}
{% set nozzle_prime_start_y = printer["gcode_macro RatOS"].nozzle_prime_start_y %}
{% if idex_mode == '' %}
{% if nozzle_prime_start_x|lower == 'min' %}
{% set x_start = 5 %}
{% elif nozzle_prime_start_x|lower == 'max' %}
{% set x_start = printable_x_max - 5 %}
{% else %}
{% set x_start = nozzle_prime_start_x|float %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_y_max - 5 %}
{% else %}
{% set y_start = nozzle_prime_start_y|float %}
{% endif %}
{% else %}
{% set center_x = printable_x_max / 2 %}
{% if t == 0 %}
{% set x_start = 5 %}
{% else %}
{% set x_start = printable_x_max - 5 %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_y_max - 5 %}
{% endif %}
{% endif %}
{% set z = printer.configfile.settings.bed_mesh.horizontal_move_z|float %}
{% set mesh_config = printer.configfile.config.bed_mesh %}
{% if printer.configfile.settings.bltouch is defined %}
{% set x_offset = printer.configfile.settings.bltouch.x_offset|float %}
{% set y_offset = printer.configfile.settings.bltouch.y_offset|float %}
{% set z_offset = printer.configfile.settings.bltouch.z_offset|float %}
{% elif printer.configfile.settings.probe is defined %}
{% set x_offset = printer.configfile.settings.probe.x_offset|float %}
{% set y_offset = printer.configfile.settings.probe.y_offset|float %}
{% set z_offset = printer.configfile.settings.probe.z_offset|float %}
{% elif printer.configfile.settings.beacon is defined %}
{% set x_offset = printer.configfile.settings.beacon.x_offset|float %}
{% set y_offset = printer.configfile.settings.beacon.y_offset|float %}
{% set z_offset = printer.configfile.settings.beacon.trigger_distance|float %}
{% else %}
{ action_raise_error("No probe, beacon or bltouch section found. Adaptive priming only works with a [probe], [beacon] or [bltouch] section defined.") }
{% endif %}
{% if z < z_offset %}
{ action_raise_error("Horizontal move Z ({z}) is below your probe's Z offset ({z_offset}). Please adjust your horizontal_move_z setting in [bed_mesh] to be above {z}.") }
{% endif %}
{% if not probe_for_priming_disable_mesh_constraints %}
{% set min_x = mesh_config.mesh_min.split(",")[0]|float - x_offset %}
{% set min_y = mesh_config.mesh_min.split(",")[1]|float - y_offset %}
{% set max_x = mesh_config.mesh_max.split(",")[0]|float - x_offset %}
{% set max_y = mesh_config.mesh_max.split(",")[1]|float - y_offset %}
{% set x_start = [[x_start, max_x]|min, min_x]|max %}
{% set y_start = [[y_start, max_y]|min, min_y]|max %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Probing the start of the prime location at {x_start}, {y_start}"
G90
M83
G0 Z{z} F{z_speed}
G1 X{x_start} Y{y_start} F{speed}
PROBE_CURRENT_POSITION
{% if t == 1 %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_result_t1
{% else %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_result
{% endif %}
{% if idex_mode == '' %}
{% set x_end = x_start %}
{% set y_end = y_start + 45 %}
{% else %}
{% if t==1 %}
{% set x_end = x_start - 45 %}
{% else %}
{% set x_end = x_start + 45 %}
{% endif %}
{% set y_end = y_start %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Probing the end of the prime location at {x_end}, {y_end}"
G1 X{x_end} Y{y_end} F{speed}
PROBE_CURRENT_POSITION
{% if t == 1 %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_end_result_t1
{% else %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_end_result
{% endif %}
RESTORE_GCODE_STATE NAME=probe_for_priming_state
RESTORE_TOOLHEAD_SETTINGS KEY="probe_for_priming"
{% endif %}
[gcode_macro RESET_PRIME_PROBE_STATE]
gcode =
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_result VALUE=None
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_end_result VALUE=None
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_result_t1 VALUE=None
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_end_result_t1 VALUE=None
{% endif %}
[gcode_macro PROBE_CURRENT_POSITION]
gcode =
{% set beacon_contact_prime_probing = true if printer["gcode_macro RatOS"].beacon_contact_prime_probing|default(false)|lower == 'true' else false %}
SAVE_GCODE_STATE NAME=probe_current_position_state
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
ASSERT_PROBE_DEPLOYED
{% endif %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_prime_probing %}
PROBE PROBE_METHOD=contact SAMPLES=1
{% else %}
PROBE
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
BEACON_QUERY
{% else %}
RESTORE_GCODE_STATE NAME=probe_current_position_state MOVE=1 MOVE_SPEED={printer["gcode_macro RatOS"].macro_z_speed|float}
{% endif %}
[gcode_macro PRIME_BLOB]
description = Prints a primeblob, used internally, if configured, as part of the START_PRINT macro.
variable_x_offset = 5
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="prime_blob"
SET_MACRO_TRAVEL_SETTINGS
RATOS_ECHO PREFIX="Priming" MSG="Priming nozzle with prime blob.."
{% set current_toolhead = 0 %}
{% set target_idex_mode = '' %}
{% set extruder = 'extruder' %}
{% if printer["dual_carriage"] is defined %}
{% if params.IDEX_MODE is defined %}
{% set target_idex_mode = params.IDEX_MODE|default('')|lower %}
{% else %}
{ action_raise_error("IDEX_MODE parameter not found for PRIME_BLOB macro. This is likely a bug.") }
{% endif %}
RATOS_ECHO PREFIX="Priming" MSG="Priming in IDEX {target_idex_mode} mode.."
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set current_toolhead = 1 if current_idex_mode=='primary' else 0 %}
{% set extruder = 'extruder1' if current_toolhead == 1 else 'extruder' %}
{% endif %}
{% if target_idex_mode != "copy" or target_idex_mode != "mirror" %}
SAVE_GCODE_STATE NAME=prime_blob_state
{% endif %}
{% set first_y = printer["gcode_macro START_PRINT"].first_y|default(-1)|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set fan_speed = printer["gcode_macro RatOS"].nozzle_prime_bridge_fan|float %}
{% set nozzle_diameter = printer.configfile.settings[extruder].nozzle_diameter|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set has_start_offset_t0 = printer["gcode_macro RatOS"].probe_for_priming_result|float(9999.9) != 9999.9 %}
{% if printer["dual_carriage"] is defined %}
{% set has_start_offset_t1 = printer["gcode_macro RatOS"].probe_for_priming_result_t1|float(9999.9) != 9999.9 %}
{% endif %}
{% set start_print_park_in = printer["gcode_macro RatOS"].start_print_park_in %}
{% set start_print_park_z_height = printer["gcode_macro RatOS"].start_print_park_z_height|float %}
{% set nozzle_prime_direction = printer["gcode_macro RatOS"].nozzle_prime_direction|lower %}
{% set nozzle_prime_start_x = printer["gcode_macro RatOS"].nozzle_prime_start_x %}
{% set nozzle_prime_start_y = printer["gcode_macro RatOS"].nozzle_prime_start_y %}
{% set initial_toolhead = params.INITIAL_TOOLHEAD|default(default_toolhead)|int %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% if target_idex_mode == '' %}
{% set x_factor = 0 %}
{% if nozzle_prime_start_x|lower == 'min' %}
{% set x_start = 5 %}
{% elif nozzle_prime_start_x|lower == 'max' %}
{% set x_start = printable_x_max - 5 %}
{% else %}
{% set x_start = nozzle_prime_start_x|float %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% set y_factor = 1 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_y_max - 5 %}
{% set y_factor = -1 %}
{% else %}
{% set y_start = nozzle_prime_start_y|float %}
{% if nozzle_prime_start_y|float < printable_y_max / 2 %}
{% set y_factor = 1 %}
{% else %}
{% set y_factor = -1 %}
{% endif %}
{% endif %}
{% if nozzle_prime_direction == 'forwards' %}
{% set y_factor = 1 %}
{% elif nozzle_prime_direction == 'backwards' %}
{% set y_factor = -1 %}
{% endif %}
{% if start_print_park_in == 'primeblob' %}
{% set z = 3 %}
{% else %}
{% set z = start_print_park_z_height %}
{% endif %}
{% else %}
{% set center_x = printable_x_max / 2 %}
{% set y_factor = 0 %}
{% if target_idex_mode == 'copy' or target_idex_mode == 'mirror' %}
{% set x_start = center_x / 2 + 5 %}
{% set x_factor = 1 %}
{% else %}
{% if both_toolheads and initial_toolhead != current_toolhead %}
{% if current_toolhead == 0 %}
{% set x_start = 55 %}
{% set x_factor = -1 %}
{% elif current_toolhead == 1 %}
{% set x_start = printable_x_max - 55 %}
{% set x_factor = 1 %}
{% endif %}
{% else %}
{% if current_toolhead == 0 %}
{% set x_start = 5 %}
{% set x_factor = 1 %}
{% elif current_toolhead == 1 %}
{% set x_start = printable_x_max - 5 %}
{% set x_factor = -1 %}
{% endif %}
{% endif %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_x_max - 5 %}
{% endif %}
{% set z = 10 %}
{% endif %}
{% set start_z_offset = 0 %}
{% set end_z_offset = 0 %}
{% if has_start_offset_t0 %}
{% set start_z_probe_result_t0 = printer["gcode_macro RatOS"].probe_for_priming_result|float(9999.9) %}
{% set end_z_probe_result_t0 = printer["gcode_macro RatOS"].probe_for_priming_end_result|float(9999.9) %}
{% if printer.configfile.settings.bltouch is not defined and printer.configfile.settings.probe is not defined and printer.configfile.settings.beacon is not defined %}
{ action_raise_error("No probe or bltouch section found. Adaptive priming only works with [probe], [beacon] or [bltouch].") }
{% endif %}
{% if start_z_probe_result_t0 == 9999.9 %}
{ action_raise_error("No start probe result found for prime area. This is likely a bug.") }
{% endif %}
{% if end_z_probe_result_t0 == 9999.9 %}
{ action_raise_error("No end probe result found for prime area. This is likely a bug.") }
{% endif %}
{% set adjustment_threshold = printer["gcode_macro RatOS"].adaptive_prime_offset_threshold|float %}
{% if start_z_probe_result_t0 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (start_z_probe_result_t0) ) }
{% endif %}
{% if end_z_probe_result_t0 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (end_z_probe_result_t0) ) }
{% endif %}
{% set start_z_offset = start_z_probe_result_t0 %}
{% set end_z_offset = end_z_probe_result_t0 %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if current_toolhead == 1 or both_toolheads or target_idex_mode == "copy" or target_idex_mode == "mirror" %}
{% if has_start_offset_t1 %}
{% set start_z_probe_result_t1 = printer["gcode_macro RatOS"].probe_for_priming_result_t1|float(9999.9) %}
{% set end_z_probe_result_t1 = printer["gcode_macro RatOS"].probe_for_priming_end_result_t1|float(9999.9) %}
{% if printer.configfile.settings.bltouch is not defined and printer.configfile.settings.probe is not defined and printer.configfile.settings.beacon is not defined %}
{ action_raise_error("No probe or bltouch section found. Adaptive priming only works with [probe], [beacon] or [bltouch].") }
{% endif %}
{% if start_z_probe_result_t1 == 9999.9 %}
{ action_raise_error("No start probe result found for prime area. This is likely a bug.") }
{% endif %}
{% if end_z_probe_result_t1 == 9999.9 %}
{ action_raise_error("No end probe result found for prime area. This is likely a bug.") }
{% endif %}
{% set adjustment_threshold = printer["gcode_macro RatOS"].adaptive_prime_offset_threshold|float %}
{% if start_z_probe_result_t1 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (start_z_probe_result_t1) ) }
{% endif %}
{% if end_z_probe_result_t1 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (end_z_probe_result_t1) ) }
{% endif %}
{% set start_z_offset = [start_z_offset, start_z_probe_result_t1]|max %}
{% set end_z_offset = [end_z_offset, start_z_probe_result_t1]|max %}
{% endif %}
{% endif %}
{% if target_idex_mode != 'copy' and target_idex_mode != 'mirror' %}
{% if both_toolheads and initial_toolhead != current_toolhead %}
{% set original_start_z_offset = start_z_offset %}
{% set original_end_z_offset = end_z_offset %}
{% set start_z_offset = original_end_z_offset %}
{% set end_z_offset = original_start_z_offset %}
{% endif %}
{% endif %}
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={current_toolhead}
{% endif %}
DEBUG_ECHO PREFIX="PRIME_BLOB" MSG="x_start: {x_start}, y_start: {y_start}, x_factor: {x_factor}, y_factor: {y_factor}, z: {z}, start_z_offset: {start_z_offset}, end_z_offset: {end_z_offset}"
G90
M83
RATOS_ECHO PREFIX="Priming" MSG="Lifting Z to {z}.."
G0 Z{z} F{z_speed}
{% if printer["dual_carriage"] is not defined %}
RATOS_ECHO PREFIX="Priming" MSG="Moving to {x_start}, {y_start} along the edge of the print area.."
{% if start_print_park_in != 'primeblob' %}
G1 X{x_start} F{speed}
G1 Y{y_start + (15 * y_factor)} F{speed}
{% endif %}
{% else %}
G1 Y{y_start + (15 * y_factor)} F{speed}
{% if target_idex_mode=="copy" or target_idex_mode=="mirror" %}
RATOS_ECHO PREFIX="Priming" MSG="Mirroring move to {x_start}, {y_start} along the edge of the print area.."
_IDEX_MIRROR PRIMING=1
{% else %}
RATOS_ECHO PREFIX="Priming" MSG="Moving to {x_start}, {y_start} along the edge of the print area.."
{% endif %}
G1 X{x_start} F{speed}
{% endif %}
RATOS_ECHO PREFIX="Priming" MSG="Starting prime blob.."
G1 Z{0.5 + start_z_offset} F{z_speed}
G1 Y{y_start} F{speed}
G1 F300 E{14 / ((0.4 / nozzle_diameter) ** 2)}
G1 F300 E{14 / ((0.4 / nozzle_diameter) ** 2)}
M106 S{fan_speed}
G1 Z5 F100 E5
G92 E0
RATOS_ECHO PREFIX="Priming" MSG="Bridging with {((fan_speed/255) * 100)|int}% fan speed.."
G1 F3000 X{x_start + (15 * x_factor)} Y{y_start + (15 * y_factor)} E{1 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (20 * x_factor)} Y{y_start + (20 * y_factor)} Z{3.8 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (34 * x_factor)} Y{y_start + (34 * y_factor)} Z{2.6 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (38 * x_factor)} Y{y_start + (38 * y_factor)} Z{1.4 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (42 * x_factor)} Y{y_start + (42 * y_factor)} Z{0.2 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
M106 S0
G1 F3000 X{x_start + (46 * x_factor)} Y{y_start + (46 * y_factor)} Z{0.2 + end_z_offset} E0.6
G1 F{speed} X{x_start + (50 * x_factor)} Y{y_start + (50 * y_factor)}
{% if target_idex_mode == "copy" or target_idex_mode == "mirror" %}
G0 Z3 F{z_speed}
{% endif %}
{% if target_idex_mode == "copy" %}
{% if first_y >= 0 %}
_IDEX_COPY DANCE=0 Y={first_y}
{% else %}
_IDEX_COPY DANCE=0 Y={params.Y1}
{% endif %}
{% endif %}
{% if target_idex_mode != "copy" or target_idex_mode != "mirror" %}
RESTORE_GCODE_STATE NAME=prime_blob_state
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="prime_blob"
G92 E0
[gcode_macro UNLOAD_FILAMENT]
description = Unloads the filament. Note: be careful with PETG, make sure you inspect the tip of your filament before reloading to avoid jams.
variable_ignore_min_extrude_temp = True
gcode =
_LEARN_MORE_FILAMENT
{% set temp = params.TEMP|default(220)|int %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set filament_name = params._NAME|default('')|string %}
{% set filament_type = params._TYPE|default('')|string %}
{% set temp = params.TEMP|default(220)|int %}
{% if printer["dual_carriage"] is not defined %}
_DEFAULT_UNLOAD_FILAMENT TEMP={temp} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
{% if not printer.pause_resume.is_paused %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Unloading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
{% set paused_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% if paused_idex_mode == 'copy' or paused_idex_mode == 'mirror' %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set toolhead = printer["gcode_macro PAUSE"].idex_toolhead|int %}
{% endif %}
{% endif %}
{% endif %}
{% if toolhead==0 or toolhead==1 %}
_IDEX_UNLOAD_FILAMENT TEMP={temp} TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
RATOS_ECHO MSG="Please select toolhead! 0 = left, 1 = right toolhead"
{% endif %}
{% endif %}
[gcode_macro _LEGACY_UNLOAD_FILAMENT]
description = Unloads the filament. Note: be careful with PETG, make sure you inspect the tip of your filament before reloading to avoid jams.
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set unload_speed = 5 * 60 %}
{% set unload_length = printer["gcode_macro RatOS"].filament_unload_length|float %}
M117 Unloading filament...
G0 E10 F300
G0 E-5 F3600
G4 P3000
G0 E5 F6000
G0 E-15 F6000
G0 E-{unload_length} F{unload_speed}
_CLEANING_MOVE TOOLHEAD={toolhead}
M117 Filament unloaded!
RESPOND MSG="Filament unloaded! Please inspect the tip of the filament before reloading."
[gcode_macro _DEFAULT_UNLOAD_FILAMENT]
description = Unload filament macro for non IDEX printers.
gcode =
{% set temp = params.TEMP|default(220)|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set enable_unload_tip_forming = true if printer["gcode_macro RatOS"].enable_unload_tip_forming|default(false)|lower == 'true' else false %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_DEFAULT_UNLOAD_FILAMENT" MSG="TEMP: {temp}"
_LED_UNLOADING_FILAMENT TOOLHEAD=0
SAVE_GCODE_STATE NAME=unload_state
{% if printer.extruder.temperature|int < temp or printer.extruder.can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating extruder to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={temp}
G4 P3000
{% if enable_unload_tip_forming %}
_UNLOAD_FILAMENT TOOLHEAD=0 NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
_LEGACY_UNLOAD_FILAMENT TOOLHEAD=0
{% endif %}
RESTORE_GCODE_STATE NAME=unload_state
SAVE_VARIABLE VARIABLE=t0_filament VALUE="('""', '""', 0)"
{% if printer["gcode_macro T0"].filament_name is defined and printer["gcode_macro T0"].filament_type is defined and printer["gcode_macro T0"].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE=0
{% endif %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_unknown}"'
_LED_FILAMENT_UNLOADED TOOLHEAD=0
[gcode_macro _IDEX_UNLOAD_FILAMENT]
description = Unload filament macro for IDEX printer.
gcode =
{% set temp = params.TEMP|default(220)|int %}
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set enable_unload_tip_forming = true if printer["gcode_macro RatOS"].enable_unload_tip_forming|default(false)|lower == 'true' else false %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_IDEX_UNLOAD_FILAMENT" MSG="TEMP: {temp}, TOOLHEAD: {toolhead}"
_LED_UNLOADING_FILAMENT TOOLHEAD={toolhead}
{% if "xyz" not in printer.toolhead.homed_axes %}
_SELECT_TOOL T={toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% set target_extruder = 'extruder%s' % ('' if toolhead == 0 else toolhead) %}
ACTIVATE_EXTRUDER EXTRUDER={target_extruder}
{% if not printer.pause_resume.is_paused %}
{% if printer[target_extruder].temperature|int < temp or printer[target_extruder].can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating T{toolhead} to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={temp}
{% endif %}
G4 P3000
{% if enable_unload_tip_forming %}
_UNLOAD_FILAMENT TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
_LEGACY_UNLOAD_FILAMENT TEMP={temp} TOOLHEAD={toolhead}
{% endif %}
SAVE_VARIABLE VARIABLE=t{toolhead}_filament VALUE="('""', '""', 0)"
{% if printer["gcode_macro T%s" % toolhead].filament_name is defined and printer["gcode_macro T%s" % toolhead].filament_type is defined and printer["gcode_macro T%s" % toolhead].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_temp VALUE=0
{% endif %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_unknown}"'
_LED_FILAMENT_UNLOADED TOOLHEAD={toolhead}
[gcode_macro _UNLOAD_FILAMENT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
DEBUG_ECHO PREFIX="_UNLOAD_FILAMENT" MSG="TOOLHEAD: {toolhead}"
_MOVE_TO_LOADING_POSITION TOOLHEAD={toolhead}
_UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
_UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER TOOLHEAD={toolhead}
_CLEANING_MOVE TOOLHEAD={toolhead}
[gcode_macro _UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
DEBUG_ECHO PREFIX="_UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE" MSG="TOOLHEAD: {toolhead}"
RATOS_ECHO MSG="Unloading filament from nozzle to cooling zone... Please wait!"
_PURGE_BEFORE_UNLOAD TOOLHEAD={toolhead}
{% if printer["gcode_macro _UNLOAD_WITHOUT_TIP_FORMING"] is defined %}
_UNLOAD_WITHOUT_TIP_FORMING TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
_UNLOAD_WITH_TIP_FORMING NAME='{filament_name}' TYPE='{filament_type}'
{% endif %}
G4 P3000
[gcode_macro _UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set extruder_load_speed = printer["gcode_macro T%s" % toolhead].extruder_load_speed|float * 60 %}
{% set extruder_gear_to_cooling_position_distance = printer["gcode_macro T%s" % toolhead].extruder_gear_to_cooling_position_distance|float %}
{% set tooolhead_sensor_to_extruder_gear_distance = printer["gcode_macro T%s" % toolhead].tooolhead_sensor_to_extruder_gear_distance|float %}
DEBUG_ECHO PREFIX="_UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER" MSG="TOOLHEAD: {toolhead}"
G0 E-{extruder_gear_to_cooling_position_distance + tooolhead_sensor_to_extruder_gear_distance + 50} F{extruder_load_speed}
RATOS_ECHO MSG="Filament unloaded! Please inspect the tip of the filament before reloading."
[gcode_macro _UNLOAD_WITH_TIP_FORMING]
gcode =
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% if filament_name != '' and filament_type != '' %}
_UNLOAD_KNOWN_FILAMENT NAME={filament_name} TYPE={filament_type}
{% else %}
_UNLOAD_UNKNOWN_FILAMENT TOOLHEAD={toolhead}
{% endif %}
[gcode_macro _UNLOAD_KNOWN_FILAMENT]
description = User overrideable tip forming macro if slicer filament profiles are known
gcode =
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
RATOS_ECHO PREFIX="FILAMENT TYPE" MSG='{filament_type}'
RATOS_ECHO PREFIX="FILAMENT PROFILE" MSG='{filament_name}'
{% if filament_name == "Prusament PETG @V-Minion" %}
_TIP_FORMING RETRACT_LENGTH=18 COOLING_MOVE_LENGTH=10
{% elif filament_name == "Nobufil PETG @V-Minion" %}
_TIP_FORMING RETRACT_LENGTH=18 COOLING_MOVE_LENGTH=10
{% else %}
RATOS_ECHO PREFIX="_UNLOAD_KNOWN_FILAMENT" MSG="Filament profile not found!"
_UNLOAD_UNKNOWN_FILAMENT
{% endif %}
[gcode_macro _UNLOAD_UNKNOWN_FILAMENT]
description = User overrideable standard tip forming macro
gcode =
DEBUG_ECHO PREFIX="_UNLOAD_UNKNOWN_FILAMENT" MSG="Using standard tip forming macro!"
_TIP_FORMING RETRACT_LENGTH=18 COOLING_MOVE_LENGTH=10
[gcode_macro _TIP_FORMING]
gcode =
{% set cooling_moves = params.COOLING_MOVES|default(4)|int %}
{% set cooling_move_length = params.COOLING_MOVE_LENGTH|default(10)|float %}
{% set start_cooling_speed = params.START_COOLING_SPEED|default(10)|float * 60 %}
{% set end_cooling_speed = params.END_COOLING_SPEED|default(50)|float * 60 %}
{% if cooling_moves == 0 %}
{% set cooling_move_length = 0 %}
{% endif %}
{% set dip = true if params.DIP|default(false)|lower == "true" else false %}
{% set dip_length = params.DIP_LENGTH|default(22)|float %}
{% set dip_speed = params.DIP_SPEED|default(30)|float * 60 %}
{% set dip_retract_speed = params.DIP_RETRACT_SPEED|default(70)|float * 60 %}
{% set retract_length = params.RETRACT_LENGTH|default(18)|float %}
{% set start_retract_speed = params.START_RETRACT_SPEED|default(120)|float * 60 %}
{% set end_retract_speed = params.END_RETRACT_SPEED|default(20)|float * 60 %}
DEBUG_ECHO PREFIX="_TIP_FORMING" MSG="cooling_moves: {cooling_moves}, cooling_move_length: {cooling_move_length}, start_cooling_speed: {start_cooling_speed}, end_cooling_speed: {end_cooling_speed}, dip: {dip}, dip_length: {dip_length}, dip_speed: {dip_speed}, dip_retract_speed: {dip_retract_speed}, retract_length: {retract_length}, start_retract_speed: {start_retract_speed}, end_retract_speed: {end_retract_speed}"
M220 S100
G92 E0
{% set retract = retract_length + cooling_move_length / 2 - 15 %}
G1 E-15 F{start_retract_speed}
G1 E-{0.7 * retract} F{1.0 * end_retract_speed}
G1 E-{0.2 * retract} F{0.5 * end_retract_speed}
G1 E-{0.1 * retract} F{0.3 * end_retract_speed}
G92 E0
{% if cooling_moves > 0 %}
{% set i = (end_cooling_speed - start_cooling_speed) / (2 * cooling_moves - 1) %}
{% for m in range(cooling_moves) %}
G1 E{cooling_move_length} F{(start_cooling_speed + i * m * 2)}
G1 E-{cooling_move_length} F{(start_cooling_speed + i * (m * 2 + 1))}
{% endfor %}
{% endif %}
G92 E0
{% if dip %}
G1 E{dip_length} F{dip_speed}
G4 P100
G1 E-{dip_length} F{dip_retract_speed}
{% endif %}
G92 E0
M400
[gcode_macro _ON_FILAMENT_SENSOR_BUTTON_PRESSED]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_ON_FILAMENT_SENSOR_BUTTON_PRESSED" MSG="TOOLHEAD: {toolhead}"
{% if not printer.virtual_sdcard.is_active %}
UNLOAD_FILAMENT TOOLHEAD={toolhead}
{% endif %}
[gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_runout_detection = true if printer["gcode_macro T%s" % toolhead].enable_runout_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT" MSG="TOOLHEAD: {toolhead}"
{% if enable_runout_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=false
{% endif %}
[gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_CLOG]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_clog_detection = true if printer["gcode_macro T%s" % toolhead].enable_clog_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_CLOG" MSG="TOOLHEAD: {toolhead}"
{% if enable_clog_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=true
{% endif %}
[gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_runout_detection = true if printer["gcode_macro T%s" % toolhead].enable_runout_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_BOWDEN_FILAMENT_SENSOR_RUNOUT" MSG="TOOLHEAD: {toolhead}"
{% if enable_runout_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=false
{% endif %}
[gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_CLOG]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_clog_detection = true if printer["gcode_macro T%s" % toolhead].enable_clog_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_BOWDEN_FILAMENT_SENSOR_CLOG" MSG="TOOLHEAD: {toolhead}"
{% if enable_clog_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=true
{% endif %}
[gcode_macro _ON_FILAMENT_END]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set clogged = true if params.CLOGGED|default(false)|lower == 'true' else false %}
{% set unload_after_runout = printer["gcode_macro T%s" % toolhead].unload_after_runout|float %}
{% if clogged %}
_LED_FILAMENT_CLOG TOOLHEAD={toolhead}
{% else %}
_LED_FILAMENT_RUNOUT TOOLHEAD={toolhead}
{% endif %}
DEBUG_ECHO PREFIX="_ON_FILAMENT_END" MSG="TOOLHEAD: {toolhead}"
{% if printer.virtual_sdcard.is_active %}
{% if not printer.pause_resume.is_paused %}
PAUSE RUNOUT=True
{% endif %}
{% if not clogged and unload_after_runout %}
UNLOAD_FILAMENT TOOLHEAD={toolhead}
{% endif %}
{% if not clogged and printer["dual_carriage"] is defined %}
{% if printer["gcode_macro _IDEX_JOIN_SPOOLS"].enabled|default(false)|lower == 'true'%}
_JOIN_SPOOL TOOLHEAD={toolhead}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M600]
description = Executes a color change by pausing the printer an unloading the filament.
gcode =
PAUSE
UNLOAD_FILAMENT
RATOS_ECHO MSG="Please load new filament and resume"
[gcode_macro COLD_PULL]
description = Automated hotend cold pull.
gcode =
{% set extrusion_temp = params.EXTRUSION_TEMP|default(220)|int %}
{% set cold_pull_temp = params.COLD_PULL_TEMP|default(80)|int %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% if printer["dual_carriage"] is not defined %}
{% set toolhead = 0 %}
{% else %}
{% if not printer.pause_resume.is_paused %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Unloading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
{% set paused_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% if paused_idex_mode == 'copy' or paused_idex_mode == 'mirror' %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set toolhead = printer["gcode_macro PAUSE"].idex_toolhead|int %}
{% endif %}
{% endif %}
{% endif %}
{% if toolhead != 0 and toolhead != 1 %}
{action_raise_error("Please select toolhead! 0 = left, 1 = right toolhead")}
{% endif %}
{% endif %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
_LED_UNLOADING_FILAMENT TOOLHEAD={toolhead}
SAVE_GCODE_STATE NAME=cold_pull_state
{% if "xyz" not in printer.toolhead.homed_axes %}
_SELECT_TOOL T={toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% set target_extruder = 'extruder%s' % ('' if toolhead == 0 else toolhead) %}
ACTIVATE_EXTRUDER EXTRUDER={target_extruder}
RATOS_ECHO MSG="Heating T{toolhead} to {extrusion_temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={extrusion_temp}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={extrusion_temp} MAXIMUM={extrusion_temp + 2}
G4 P3000
RATOS_ECHO MSG="extruding..."
G92 E0
G1 E30 F300
G92 E0
RATOS_ECHO MSG="Heating T{toolhead} to {cold_pull_temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={cold_pull_temp}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={cold_pull_temp} MAXIMUM={cold_pull_temp + 2}
G4 P10000
RATOS_ECHO MSG="cold pull..."
FORCE_MOVE STEPPER={target_extruder} DISTANCE=-40 VELOCITY=5 ACCEL=100
RATOS_ECHO MSG="eject filament..."
FORCE_MOVE STEPPER={target_extruder} DISTANCE=-200 VELOCITY=20 ACCEL=500
RATOS_ECHO MSG="cooling down extruder..."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET=0
RESTORE_GCODE_STATE NAME=cold_pull_state
SAVE_VARIABLE VARIABLE=t{toolhead}_filament VALUE="('""', '""', 0)"
{% if printer["gcode_macro T%s" % toolhead].filament_name is defined and printer["gcode_macro T%s" % toolhead].filament_type is defined and printer["gcode_macro T%s" % toolhead].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_temp VALUE=0
{% endif %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_unknown}"'
_LED_FILAMENT_UNLOADED TOOLHEAD={toolhead}
CONSOLE_ECHO TITLE="Cold pull finished!" MSG="Please remove the filament from the PTFE tube and cut the end off. Do NOT try to load it again." TYPE="warning"
[gcode_macro _USER_START_PRINT_BEFORE_HOMING]
gcode =
[gcode_macro _USER_START_PRINT_AFTER_HEATING_BED]
gcode =
[gcode_macro _USER_START_PRINT_BED_MESH]
gcode =
[gcode_macro _USER_START_PRINT_PARK]
gcode =
[gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER]
gcode =
[gcode_macro _USER_START_PRINT_HEAT_CHAMBER]
description = Uses the extruder sensor to wait for chamber temp. Override the _START_PRINT_HEAT_CHAMBER macro to implement heated chamber handling.
gcode =
{% set chamber_heater_bed_temp = printer["gcode_macro RatOS"].chamber_heater_bed_temp|default(115)|int %}
[gcode_macro _USER_END_PRINT_BEFORE_HEATERS_OFF]
gcode =
[gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF]
gcode =
[gcode_macro _USER_END_PRINT_PARK]
gcode =
[gcode_macro _USER_END_PRINT_FINISHED]
description = User hook for when the print is finished after gcode state has been restored.
gcode =
[gcode_macro _USER_START_PRINT]
gcode =
[gcode_macro _USER_END_START_PRINT]
gcode =
[gcode_macro _USER_START_FEATURE]
gcode =
[gcode_macro _USER_END_FEATURE]
gcode =
[gcode_macro ECHO_T_VARS]
description = Echo Toolhead variables to the console.
gcode =
{% set t = params.T|default(0) %}
RATOS_ECHO MSG="T{t} Variables"
{% for var, value in printer["gcode_macro T%s" % t].items() %}
{action_respond_info(var ~ ": " ~ value)}
{% endfor %}
[gcode_macro ECHO_RATOS_VARS]
description = Echo RatOS variables to the console.
gcode =
{% for var, value in printer["gcode_macro RatOS"].items() %}
{action_respond_info(var ~ ": " ~ value)}
{% endfor %}
[delayed_gcode RATOS_INIT]
initial_duration = 0.1
gcode =
_LED_STANDBY
CALCULATE_PRINTABLE_AREA
INITIAL_FRONTEND_UPDATE
_CHAMBER_FILTER_SANITY_CHECK
[delayed_gcode RATOS_LOGO]
initial_duration = 2
gcode =
HELLO_RATOS
[gcode_macro INITIAL_FRONTEND_UPDATE]
gcode =
{% set color_ok = printer["gcode_macro RatOS"].status_color_ok|string %}
{% set color_error = printer["gcode_macro RatOS"].status_color_error|string %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_unknown}"'
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=color VALUE='"{color_unknown}"'
{% endif %}
{% set t0_sensor = "undefined" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"].filament_detected|lower == "true" %}
{% set t0_sensor = "detected" %}
{% else %}
{% set t0_sensor = "empty" %}
{% endif %}
{% else %}
{% set t0_sensor = "disabled" %}
{% endif %}
{% endif %}
{% set t1_sensor = "undefined" %}
{% if printer["dual_carriage"] is defined and printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"].filament_detected|lower == "true" %}
{% set t1_sensor = "detected" %}
{% else %}
{% set t1_sensor = "empty" %}
{% endif %}
{% else %}
{% set t1_sensor = "disabled" %}
{% endif %}
{% endif %}
{% set svv = printer.save_variables.variables %}
{% if svv.t0_filament is defined and printer["gcode_macro T0"] is defined %}
{% if printer["gcode_macro T0"].filament_name is defined and printer["gcode_macro T0"].filament_type is defined and printer["gcode_macro T0"].filament_temp is defined %}
{% if t0_sensor != "empty" %}
{% set t0_filament_type = svv.t0_filament[0]|default('')|string %}
{% set t0_filament_name = svv.t0_filament[1]|default('')|string %}
{% set t0_filament_temp = svv.t0_filament[2]|default(0)|float %}
{% if t0_filament_name != '' and t0_filament_type != '' and t0_filament_temp > 0 %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_ok}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='"{t0_filament_name}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='"{t0_filament_type}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE={t0_filament_temp}
{% endif %}
{% else %}
SAVE_VARIABLE VARIABLE=t0_filament VALUE="('""', '""', 0)"
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE=0
{% endif %}
{% endif %}
{% endif %}
{% if svv.t1_filament is defined and printer["gcode_macro T1"] is defined %}
{% if printer["gcode_macro T1"].filament_name is defined and printer["gcode_macro T1"].filament_type is defined and printer["gcode_macro T1"].filament_temp is defined %}
{% if t1_sensor != "empty" %}
{% set t1_filament_type = svv.t1_filament[0]|default('')|string %}
{% set t1_filament_name = svv.t1_filament[1]|default('')|string %}
{% set t1_filament_temp = svv.t1_filament[2]|default(0)|float %}
{% if t1_filament_name != '' and t1_filament_type != '' and t1_filament_temp > 0 %}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=color VALUE='"{color_ok}"'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_name VALUE='"{t1_filament_name}"'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_type VALUE='"{t1_filament_type}"'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_temp VALUE={t1_filament_temp}
{% endif %}
{% else %}
SAVE_VARIABLE VARIABLE=t1_filament VALUE="('""', '""', 0)"
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_temp VALUE=0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro CALCULATE_PRINTABLE_AREA]
gcode =
{% set bed_margin_x = printer["gcode_macro RatOS"].bed_margin_x %}
{% set bed_margin_y = printer["gcode_macro RatOS"].bed_margin_y %}
{% set tool = 0 if printer["gcode_macro T0"] is not defined or printer["gcode_macro T0"].active else 1 %}
{% set max_x = printer.toolhead.axis_maximum.x if printer["dual_carriage"] is defined and tool == 0 else printer.toolhead.axis_maximum.x - bed_margin_x[1] %}
{% if printer["dual_carriage"] is defined %}
{% set max_x = printer.toolhead.axis_maximum.x %}
{% endif %}
DEBUG_ECHO PREFIX="CALCULATE_PRINTABLE_AREA" MSG="printer.toolhead.axis_maximum.x {printer.toolhead.axis_maximum.x}"
{% set max_y = printer.toolhead.axis_maximum.y - bed_margin_y[1]%}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=printable_x_max VALUE={max_x}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=printable_y_max VALUE={max_y}
DEBUG_ECHO PREFIX="CALCULATE_PRINTABLE_AREA" MSG="Printable area calculated: X: 0,{max_x} Y: 0,{max_y}"
[gcode_macro CACHE_TOOLHEAD_SETTINGS]
variable_cache = {"global": {"accel": 1000, "ratio": 0.5, "speed": 50, "scv": 5}}
gcode =
{% set key = "global" %}
{% if params.KEY is defined %}
{% set key = params.KEY %}
{% endif %}
{% set dummy = cache.__setitem__(key, {"accel": printer.toolhead.max_accel, "ratio": printer.toolhead.minimum_cruise_ratio, "speed": printer.toolhead.max_velocity, "scv": printer.toolhead.square_corner_velocity}) %}
SET_GCODE_VARIABLE MACRO=CACHE_TOOLHEAD_SETTINGS VARIABLE=cache VALUE="{cache | pprint | replace("\n", "") | replace("\"", "\\\"")}"
DEBUG_ECHO PREFIX="CACHE_TOOLHEAD_SETTINGS" MSG="Toolhead settings cached for {key}. {printer.toolhead.max_accel} accel, {printer.toolhead.minimum_cruise_ratio} ratio, {printer.toolhead.max_velocity} velocity, {printer.toolhead.square_corner_velocity} scv."
[gcode_macro RESTORE_TOOLHEAD_SETTINGS]
gcode =
{% set key = "global" %}
{% if params.KEY is defined %}
{% set key = params.KEY %}
{% endif %}
{% set values = printer["gcode_macro CACHE_TOOLHEAD_SETTINGS"].cache.__getitem__(key) %}
{% if values is not defined or values == 'None' %}
{ action_raise_error("RESTORE_TOOLHEAD_SETTINGS: Toolhead settings not cached for key '" ~ key ~ "'.") }
{% endif %}
SET_VELOCITY_LIMIT ACCEL={values.accel} MINIMUM_CRUISE_RATIO={values.ratio} VELOCITY={values.speed} SQUARE_CORNER_VELOCITY={values.scv}
DEBUG_ECHO PREFIX="RESTORE_TOOLHEAD_SETTINGS" MSG="Toolhead settings restored. {values.accel} accel, {values.ratio} ratio, {values.speed} velocity, {values.scv} scv."
[gcode_macro SET_MACRO_TRAVEL_SETTINGS]
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set accel = printer["gcode_macro RatOS"].macro_travel_accel %}
SET_VELOCITY_LIMIT ACCEL={accel} MINIMUM_CRUISE_RATIO=0.5 VELOCITY={speed} SQUARE_CORNER_VELOCITY={5}
DEBUG_ECHO PREFIX="SET_MACRO_TRAVEL_SETTINGS" MSG="Macro travel settings set. {accel} accel, {speed} velocity"
[gcode_macro SET_CENTER_KINEMATIC_POSITION]
description = FOR DEBUGGING PURPOSES ONLY. Sets the internal printer kinematic state to the center of all axes regardless of actual physical position.
gcode =
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
RATOS_ECHO MSG="WARNING: ONLY USE SET_CENTER_KINEMATIC_POSITION FOR DEBUGGING PURPOSES. YOU'RE OVERRIDING THE INTERNAL POSITIONING STATE OF THE PRINTER. PROCEED WITH CAUTION AND DO A PROPER G28 WHEN DONE."
SET_GCODE_VARIABLE MACRO=MAYBE_HOME VARIABLE=is_kinematic_position_overriden VALUE=True
{% if printer["dual_carriage"] is not defined %}
SET_KINEMATIC_POSITION X={printable_x_max / 2} Y={printable_y_max / 2} Z={printer.toolhead.axis_maximum.z / 2}
{% else %}
IDEX_SET_CENTER_KINEMATIC_POSITION
{% endif %}
[gcode_macro IDEX_SET_CENTER_KINEMATIC_POSITION]
description = FOR DEBUGGING PURPOSES ONLY. Sets the internal printer kinematic state to the center of all axes regardless of actual physical position.
gcode =
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
RATOS_ECHO MSG="WARNING: ONLY USE SET_CENTER_KINEMATIC_POSITION FOR DEBUGGING PURPOSES. YOU'RE OVERRIDING THE INTERNAL POSITIONING STATE OF THE PRINTER. PROCEED WITH CAUTION AND DO A PROPER G28 WHEN DONE."
SET_GCODE_VARIABLE MACRO=MAYBE_HOME VARIABLE=is_kinematic_position_overriden VALUE=True
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
SET_KINEMATIC_POSITION X={center_x - (center_x / 2)} Y={printable_y_max / 2} Z={printer.toolhead.axis_maximum.z / 2}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
SET_KINEMATIC_POSITION X={center_x + (center_x / 2)} Y={printable_y_max / 2} Z={printer.toolhead.axis_maximum.z / 2}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
[gcode_macro VERIFY_HYBRID_INVERTED]
gcode =
{% set inverted = False %}
{% if printer.configfile.settings.ratos_hybrid_corexy is defined and printer.configfile.settings.ratos_hybrid_corexy.inverted is defined %}
{% if printer.configfile.settings.ratos_hybrid_corexy.inverted|lower == 'true' %}
{% set inverted = True %}
{% endif %}
{% endif %}
{% if inverted == False %}
{ action_emergency_stop("ratos_hybrid_corexy NOT INVERTED! Inverted hybrid core-xy bugfix not detected.") }
{% endif %}
[gcode_macro RATOS_ECHO]
gcode =
{% set prefix = "RatOS" %}
{% set debug = params.DEBUG|default(0)|int %}
{% if params.PREFIX is defined %}
{% set prefix = prefix ~ " | " ~ params.PREFIX %}
{% endif %}
{% set prefix = prefix ~ ":" %}
{% set msg = "" %}
{% if params.MSG is defined %}
{% set msg = params.MSG %}
{% else %}
{% set msg = "No msg parameter provided (this is a bug or unintended use)." %}
{% endif %}
{% if not debug %}
M117 {prefix} {msg}
{% endif %}
RATOS_LOG PREFIX="{prefix}" MSG="{msg}"
{% if not debug %}
RESPOND PREFIX="{prefix}" MSG="{msg}"
{% else %}
CONSOLE_ECHO TITLE="{prefix}" TYPE="debug" MSG="{msg}"
{% endif %}
[gcode_macro ENABLE_DEBUG]
gcode =
SET_GCODE_VARIABLE MACRO=DEBUG_ECHO VARIABLE=enabled VALUE=True
SET_GCODE_VARIABLE MACRO=DEBUG_ECHO VARIABLE=prefix_filter VALUE="'{params.FILTER|default('')|lower}'"
RATOS_ECHO PREFIX="DEBUG" MSG="Debugging enabled."
[gcode_macro DISABLE_DEBUG]
gcode =
SET_GCODE_VARIABLE MACRO=DEBUG_ECHO VARIABLE=enabled VALUE=False
RATOS_ECHO PREFIX="DEBUG" MSG="Debugging disabled."
[gcode_macro DEBUG_ECHO]
variable_enabled = False
variable_prefix_filter = ''
gcode =
{% set prefix = "DEBUG" %}
{% if params.PREFIX is defined %}
{% set prefix = prefix ~ " - " ~ params.PREFIX %}
{% endif %}
{% if enabled and (prefix_filter|lower == '' or prefix_filter|lower in params.PREFIX|lower) %}
RATOS_ECHO PREFIX="{prefix}" MSG="{params.MSG}" DEBUG=1
{% endif %}
[gcode_macro START_FEATURE]
gcode =
DEBUG_ECHO PREFIX="G-Code" MSG="Start {params.FEATURE} feature gcode"
{% set scv = printer.toolhead.square_corner_velocity|int|default(5) %}
{% set accel = printer.toolhead.max_accel|int|default(10000) %}
{% set ratio = printer.toolhead.minimum_cruise_ratio|float|default(0.5) %}
SET_GCODE_VARIABLE MACRO="END_FEATURE" VARIABLE="scv" VALUE={scv}
SET_GCODE_VARIABLE MACRO="END_FEATURE" VARIABLE="accel" VALUE={accel}
SET_GCODE_VARIABLE MACRO="END_FEATURE" VARIABLE="ratio" VALUE={ratio}
_USER_START_FEATURE FEATURE="{params.FEATURE}"
[gcode_macro END_FEATURE]
variable_scv = 5
variable_accel = 10000
variable_ratio = 0.5
gcode =
DEBUG_ECHO PREFIX="G-Code" MSG="End {params.FEATURE} feature gcode"
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={scv} ACCEL={accel} MINIMUM_CRUISE_RATIO={ratio}
_USER_END_FEATURE FEATURE="{params.FEATURE}" SCV={scv} ACCEL={accel} RATIO={ratio}
[gcode_macro _ON_LAYER_CHANGE]
variable_layer_number = 0
description = INTERNAL USE ONLY. Call it from the slicers after layer change custom gcode
gcode =
{% set layer = params.LAYER|int %}
SET_GCODE_VARIABLE MACRO=_ON_LAYER_CHANGE VARIABLE=layer_number VALUE={layer}
SET_PRINT_STATS_INFO CURRENT_LAYER={layer}
[gcode_macro _LEARN_MORE_CALIBRATION]
gcode =
{% set link_url = "https://os.ratrig.com/docs/configuration/calibration" %}
{% set link_text = "RatOS Calibration Macros" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="INFO" MSG={line_1}
[gcode_macro _LEARN_MORE_CHAMBER_FILTER]
gcode =
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_filter" %}
{% set link_text = "RatOS Chamber Filter Control" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="INFO" MSG={line_1}
[gcode_macro _LEARN_MORE_FILAMENT]
gcode =
{% set link_url = "https://os.ratrig.com/docs/configuration/filaments" %}
{% set link_text = "RatOS Filament Macros" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="INFO" MSG={line_1}
[gcode_macro _CONSOLE_SAVE_CONFIG]
gcode =
M118 Click SAVE_CONFIG to save the settings to your printer.cfg.
[gcode_macro SAVE_Z_OFFSET]
gcode =
{% if printer.configfile.settings.beacon is defined %}
_BEACON_SAVE_MULTIPLIER
{% else %}
Z_OFFSET_APPLY_PROBE
{% endif %}
[gcode_macro _LOAD_RATOS_SKEW_PROFILE]
gcode =
{% set ratos_skew_profile = printer["gcode_macro RatOS"].skew_profile|default("") %}
{% if ratos_skew_profile != "" %}
{% if printer.configfile.config["skew_correction %s" % ratos_skew_profile] is defined %}
SKEW_PROFILE LOAD={ratos_skew_profile}
GET_CURRENT_SKEW
{% else %}
{% set line_1 = '"Could not find skew profile %s!_N_Clearing skew correction."' % ratos_skew_profile %}
CONSOLE_ECHO TITLE="Missing skew profile!" TYPE="warning" MSG={line_1}
SET_SKEW CLEAR=1
{% endif %}
{% endif %}
[gcode_macro M601]
gcode =
PAUSE
[gcode_macro PAUSE]
description = Pauses the print
rename_existing = PAUSE_BASE
variable_extrude = 1.5
variable_retract = 1.5
variable_fan_speed = 0
variable_idex_mode = ""
variable_idex_toolhead = 0
variable_idex_toolhead_x = 0.0
variable_idex_toolhead_y = 0.0
variable_idex_toolhead_z = 0.0
gcode =
{% set runout_detected = true if params.RUNOUT|default(false)|lower == 'true' else false %}
_LED_PAUSE
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set idex_toolhead = 1 if idex_mode == 'primary' else 0 %}
{% endif %}
{% if printer["dual_carriage"] is not defined %}
SAVE_GCODE_STATE NAME=PAUSE_state
{% else %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_mode VALUE='"{idex_mode}"'
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead VALUE={idex_toolhead}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead_x VALUE={printer.gcode_move.gcode_position.x|float}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead_y VALUE={printer.gcode_move.gcode_position.y|float}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead_z VALUE={printer.gcode_move.gcode_position.z|float}
DEBUG_ECHO PREFIX="PAUSE" MSG="idex_mode: {idex_mode}, idex_toolhead: {idex_toolhead}, idex_toolhead_x: {idex_toolhead_x}, idex_toolhead_y: {idex_toolhead_y}, idex_toolhead_z: {idex_toolhead_z}"
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
CACHE_TOOLHEAD_SETTINGS KEY="pause"
SET_MACRO_TRAVEL_SETTINGS
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set current_z = printer.toolhead.position.z|float %}
{% if current_z < (max_z - 20.0) %}
{% set z_safe = 20.0 %}
{% else %}
{% set z_safe = max_z - current_z %}
{% endif %}
PAUSE_BASE
{% if printer["dual_carriage"] is not defined %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan"].speed|float}
{% else %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan_generic part_fan_t0"].speed|float}
{% else %}
{% if idex_toolhead == 0 %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan_generic part_fan_t0"].speed|float}
{% else %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan_generic part_fan_t1"].speed|float}
{% endif %}
{% endif %}
{% endif %}
M106 S0
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' else false %}
{% if idex_mode != '' %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' else false %}
{% else %}
{% if printer.toolhead.extruder == 'extruder1' %}
{% set can_extrude = true if printer['extruder1'].can_extrude|lower == 'true' else false %}
{% endif %}
{% endif %}
{% endif %}
{% set R = printer["gcode_macro PAUSE"].retract|float %}
{% if can_extrude %}
G91
G1 E-{R} F2100
G90
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set pause_print_park_x = printer["gcode_macro RatOS"].pause_print_park_x %}
{% set pause_print_park_in = printer["gcode_macro RatOS"].pause_print_park_in %}
{% if runout_detected %}
{% set pause_print_park_x = printer["gcode_macro RatOS"].runout_park_x %}
{% set pause_print_park_in = printer["gcode_macro RatOS"].runout_park_in %}
{% endif %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
DEBUG_ECHO PREFIX="PAUSE" MSG="z_speed: {z_speed}, pause_print_park_x: {pause_print_park_x}, pause_print_park_in: {pause_print_park_in}, default_toolhead: {default_toolhead}"
{% if "xyz" in printer.toolhead.homed_axes %}
G91
G1 Z{z_safe} F{z_speed}
G90
{% if printer["dual_carriage"] is not defined %}
_PARK LOCATION={pause_print_park_in} X={pause_print_park_x}
{% else %}
{% set parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
_IDEX_SINGLE X={parking_position}
{% else %}
PARK_TOOLHEAD
{% endif %}
_PARK LOCATION={pause_print_park_in} X={pause_print_park_x}
{% endif %}
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="pause"
[gcode_macro RESUME]
description = Resumes the print if the printer is paused.
rename_existing = RESUME_BASE
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set target_idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set target_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% endif %}
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' else false %}
{% if target_idex_mode != '' %}
{% if target_idex_mode == 'copy' or target_idex_mode == 'mirror' %}
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' else false %}
{% else %}
{% if printer.toolhead.extruder == 'extruder1' %}
{% set can_extrude = true if printer['extruder1'].can_extrude|lower == 'true' else false %}
{% endif %}
{% endif %}
{% endif %}
{% set fan_speed = printer["gcode_macro PAUSE"].fan_speed|float %}
{% if printer["dual_carriage"] is not defined %}
M106 S{(fan_speed * 255)}
{% else %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed}
{% else %}
{% if params.TOOLHEAD is defined %}
{% if params.TOOLHEAD == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed}
{% else %}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed}
{% endif %}
{% else %}
{% if printer["gcode_macro PAUSE"].idex_toolhead == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed}
{% else %}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed}
{% endif %}
{% endif %}
{% endif %}
M106.1 S{fan_speed}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if target_idex_mode == "copy" %}
_IDEX_COPY DANCE=0
{% elif target_idex_mode == "mirror" %}
_IDEX_MIRROR DANCE=0
{% else %}
{% if params.TOOLHEAD is defined %}
_SELECT_TOOL T={params.TOOLHEAD} X=-1 Y=-1 TOOLSHIFT=false
{% else %}
_SELECT_TOOL T={printer["gcode_macro PAUSE"].idex_toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% endif %}
{% set x = printer["gcode_macro PAUSE"].idex_toolhead_x|float %}
{% set y = printer["gcode_macro PAUSE"].idex_toolhead_y|float %}
{% set z = printer["gcode_macro PAUSE"].idex_toolhead_z|float %}
G1 X{x} Y{y} Z{z} F{speed}
{% if params.TOOLHEAD is defined %}
SAVE_GCODE_STATE NAME=PAUSE_STATE
{% endif %}
{% endif %}
{% if params.TOOLHEAD is not defined %}
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
{% if can_extrude %}
G91
G1 E{E} F2100
G90
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is not defined %}
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1 MOVE_SPEED={speed}
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=True
RESUME_BASE
_LED_PRINTING
[gcode_macro CANCEL_PRINT]
description = Cancels the printer
rename_existing = CANCEL_PRINT_BASE
gcode =
END_PRINT
TURN_OFF_HEATERS
CLEAR_PAUSE
CANCEL_PRINT_BASE
[gcode_macro START_PRINT]
description = Start print procedure, use this in your Slicer.
variable_post_processor_version = 2
variable_is_printing_gcode = False
variable_both_toolheads = True
variable_object_xoffset = 0
variable_first_x = -1
variable_first_y = -1
variable_total_toolshifts = 0
variable_initial_tool = 0
variable_extruder_first_layer_temp = ""
variable_extruder_other_layer_temp = ""
gcode =
{% if "xyz" in printer.toolhead.homed_axes and printer["dual_carriage"] is defined and printer["gcode_macro _VAOC"] is defined %}
{% if printer["gcode_macro _VAOC"].is_started|default(true)|lower == 'true' %}
_VAOC_END
{% endif %}
{% endif %}
_LED_START_PRINTING
CACHE_TOOLHEAD_SETTINGS KEY="start_print"
_USER_START_PRINT { rawparams }
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set bed_heat_soak_time = printer["gcode_macro RatOS"].bed_heat_soak_time|default(0)|int %}
{% set hotend_heat_soak_time = printer["gcode_macro RatOS"].hotend_heat_soak_time|default(0)|int %}
{% set z_probe_stowable = printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
{% if printer["dual_carriage"] is defined %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
{% endif %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set X0 = params.X0|default(-1)|float %}
{% set X1 = params.X1|default(-1)|float %}
{% set Y0 = params.Y0|default(-1)|float %}
{% set Y1 = params.Y1|default(-1)|float %}
{% if first_x == -1 or first_y == -1 %}
{% set first_x = params.FIRST_X|default(-1)|float %}
{% set first_y = params.FIRST_Y|default(-1)|float %}
{% endif %}
{% set total_toolshifts = params.TOTAL_TOOLSHIFTS|default(0)|int %}
{% set initial_tool = params.INITIAL_TOOL|default(default_toolhead)|int %}
{% set start_chamber_temp = params.START_CHAMBER_TEMP|default(0)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set bed_temp = params.BED_TEMP|default(printer.heater_bed.target, true)|float %}
{% set total_layer_count = params.TOTAL_LAYER_COUNT|default(0)|int %}
{% set extruder_first_layer_temp = (params.EXTRUDER_TEMP|default("")).split(",") %}
RATOS_ECHO MSG="First print coordinates X:{first_x} Y:{first_y}"
{% if params.TOTAL_LAYER_COUNT is not defined %}
{% set link_url = "https://os.ratrig.com/docs/slicers" %}
{% set link_text = "RatOS Slicer Configuration" %}
{% set line_1 = '"Your slicer gcode settings are not up to date._N_Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="Incomplete Slicer Configuration detected" TYPE="warning" MSG={line_1}
{% endif %}
SET_PRINT_STATS_INFO CURRENT_LAYER=1
SET_GCODE_VARIABLE MACRO=_ON_LAYER_CHANGE VARIABLE=layer_number VALUE=1
{% if total_layer_count > 0 %}
SET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set swap_toolheads = true if printer["gcode_macro _IDEX_REMAP_TOOLHEADS"].enabled|default(false)|lower == 'true' else false %}
{% if swap_toolheads %}
{% set initial_tool = 0 if initial_tool == 1 else 1 %}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE=True
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE=True
{% endif %}
{% set both_toolheads = true %}
{% if total_toolshifts == 0 %}
{% set both_toolheads = false %}
{% endif %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
_IDEX_SINGLE X={parking_position}
{% endif %}
{% if both_toolheads and (idex_mode == "copy" or idex_mode == "mirror") %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Gcode tool changes found. Copy and mirror mode do not support toolchanges.")}
{% endif %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set both_toolheads = true %}
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=initial_tool VALUE={initial_tool}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=first_x VALUE={first_x}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=first_y VALUE={first_y}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=total_toolshifts VALUE={total_toolshifts}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=both_toolheads VALUE={both_toolheads}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=extruder_first_layer_temp VALUE="'{params.EXTRUDER_TEMP}'"
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=extruder_other_layer_temp VALUE="'{params.EXTRUDER_OTHER_LAYER_TEMP}'"
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=_TOOLCHANGE VARIABLE=toolshift_count VALUE=0
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set svv = printer.save_variables.variables %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set stepper_x_position_min = printer.configfile.settings.stepper_x.position_min|float %}
{% set stepper_x_position_endstop = printer.configfile.settings.stepper_x.position_endstop|float %}
{% set dual_carriage_position_max = printer.configfile.settings.dual_carriage.position_max|float %}
{% set dual_carriage_position_endstop = printer.configfile.settings.dual_carriage.position_endstop|float %}
{% set x_parking_space = parking_position_t0 - (stepper_x_position_endstop , stepper_x_position_min)|max %}
{% set dc_parking_space = (dual_carriage_position_endstop , dual_carriage_position_max)|min - parking_position_t1 %}
{% if svv.idex_xoffset|abs >= (x_parking_space - 0.5) or svv.idex_xoffset|abs >= (dc_parking_space - 0.5) %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Toolhead x-offset is too high for the available parking space. Calibrate your X and DC endstop positions and make sure you stay below 1mm." % (copy_mode_max_width)) }
{% endif %}
{% endif %}
{% if (idex_mode == "copy" or idex_mode == "mirror") and printer.configfile.settings.ratos.enable_gcode_transform %}
{% if params.MIN_X is not defined or params.MAX_X is not defined %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Something went wrong! Missing important post processor start print parameter!") }
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=object_xoffset VALUE=0
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set boundary_box_min_x = params.MIN_X|default(0)|float %}
{% set boundary_box_max_x = params.MAX_X|default(printable_x_max)|float %}
{% set svv = printer.save_variables.variables %}
{% if default_toolhead == 0 %}
{% set boundary_box_max_x = boundary_box_max_x + svv.idex_xoffset %}
{% else %}
{% set boundary_box_min_x = boundary_box_min_x - svv.idex_xoffset %}
{% endif %}
{% set center_x = printable_x_max / 2.0 %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% set object_width = boundary_box_max_x - boundary_box_min_x %}
{% set copy_mode_max_width = center_x %}
{% set mirror_mode_max_width = center_x - safe_distance / 2.0 %}
DEBUG_ECHO PREFIX="START_PRINT" MSG="OBJECT_WIDTH: {object_width} BOUNDARY_BOX_MIN_X: {boundary_box_min_x} BOUNDARY_BOX_MAX_X: {boundary_box_max_x} CENTER_X: {center_x} SAFE_DISTANCE: {safe_distance}"
{% if idex_mode == "copy" and object_width > copy_mode_max_width %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Object is too big for copy mode! Max supported width is %s mm" % (copy_mode_max_width)) }
{% endif %}
{% if idex_mode == "mirror" and object_width > mirror_mode_max_width %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Object is too big for mirror mode! Max supported width is %s mm" % (mirror_mode_max_width)) }
{% endif %}
{% if printer["gcode_macro RatOS"].auto_center_subject|default(false)|lower == 'true' %}
{% set object_xoffset = (printable_x_max - boundary_box_max_x - boundary_box_min_x) / 2 %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=object_xoffset VALUE={object_xoffset}
{% endif %}
{% endif %}
{% set has_initial_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % initial_tool] is defined else false %}
{% if has_initial_toolhead_filament_sensor %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % initial_tool].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % initial_tool].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s filament sensor is empty." % (initial_tool)) }
{% endif %}
{% endif %}
{% endif %}
{% set has_initial_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t%s" % initial_tool] is defined else false %}
{% if has_initial_bowden_filament_sensor %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % initial_tool].enabled|lower == "true" %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % initial_tool].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s bowden sensor is empty." % (initial_tool)) }
{% endif %}
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is defined and both_toolheads %}
{% set has_secondary_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)] is defined else false %}
{% if has_secondary_toolhead_filament_sensor %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s filament sensor is empty." % (1 if initial_tool == 0 else 0)) }
{% endif %}
{% endif %}
{% endif %}
{% set has_secondary_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)] is defined else false %}
{% if has_secondary_bowden_filament_sensor %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].enabled|lower == "true" %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s bowden sensor is empty." % (1 if initial_tool == 0 else 0)) }
{% endif %}
{% endif %}
{% endif %}
{% endif %}
_CHAMBER_FILTER_ON AT="before_print_start"
{% if printer["dual_carriage"] is defined %}
{% if printer["gcode_macro _IDEX_JOIN_SPOOLS"].enabled|default(false)|lower == 'true' %}
{% if both_toolheads %}
RATOS_ECHO MSG="Spool join is not possible if both toolheads are in use!"
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% endif %}
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if idex_mode == '' %}
_SET_TOOLHEAD_OFFSET T={default_toolhead} MOVE={1 if "xyz" in printer.toolhead.homed_axes else 0}
{% endif %}
{% endif %}
CLEAR_PAUSE
{% if printer["gcode_macro RatOS"].force_absolute_position|lower == 'true' %}
G90
{% endif %}
SAVE_GCODE_STATE NAME=start_print_state
G21
G90
M82
_USER_START_PRINT_BEFORE_HOMING { rawparams }
{% if z_probe_stowable == true %}
STOWABLE_PROBE_BEGIN_BATCH
{% endif %}
MAYBE_HOME
_Z_HOP
{% if idex_mode != '' and not (printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
PARK_TOOLHEAD
{% endif %}
{% if chamber_temp > 0 %}
{% if printer["fan_generic filter"] is defined %}
{% if printer["gcode_macro RatOS"].chamber_heater_filter_fan_speed|default(0)|float > 0 %}
SET_FAN_SPEED FAN=filter SPEED={printer["gcode_macro RatOS"].chamber_heater_filter_fan_speed|default(0)|float}
{% endif %}
{% endif %}
_CHAMBER_HEATER_ON START_CHAMBER_TEMP={start_chamber_temp} CHAMBER_TEMP={chamber_temp}
_USER_START_PRINT_HEAT_CHAMBER { rawparams } CHAMBER_TEMP={chamber_temp}
{% endif %}
_START_PRINT_BEFORE_HEATING_BED T={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
RATOS_ECHO MSG="Heating bed..."
M190 S{bed_temp}
{% if bed_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking bed for {bed_heat_soak_time} seconds..."
G4 P{(bed_heat_soak_time * 1000)}
{% endif %}
_USER_START_PRINT_AFTER_HEATING_BED { rawparams }
_START_PRINT_AFTER_HEATING_BED T={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
_USER_START_PRINT_BED_MESH { rawparams } X0={X0} X1={X1} Y0={Y0} Y1={Y1}
_START_PRINT_BED_MESH X0={X0} X1={X1} Y0={Y0} Y1={Y1} T={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
{% if z_probe_stowable == true %}
STOWABLE_PROBE_END_BATCH
{% endif %}
{% if idex_mode == '' %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={extruder_first_layer_temp[0]|float}
{% else %}
{% if initial_tool == 0 or both_toolheads or (default_toolhead == 0 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={extruder_first_layer_temp[0]|float}
{% endif %}
{% if initial_tool == 1 or both_toolheads or (default_toolhead == 1 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={extruder_first_layer_temp[1]|float}
{% endif %}
{% endif %}
_USER_START_PRINT_PARK { rawparams }
_START_PRINT_PARK
RATOS_ECHO MSG="Heating Extruder..."
{% if idex_mode == '' %}
TEMPERATURE_WAIT SENSOR="extruder" MINIMUM={extruder_first_layer_temp[0]|float} MAXIMUM={extruder_first_layer_temp[0]|float + 5}
{% else %}
{% if initial_tool == 0 or both_toolheads or (default_toolhead == 0 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
TEMPERATURE_WAIT SENSOR="extruder" MINIMUM={extruder_first_layer_temp[0]|float} MAXIMUM={extruder_first_layer_temp[0]|float + 5}
{% endif %}
{% if initial_tool == 1 or both_toolheads or (default_toolhead == 1 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
TEMPERATURE_WAIT SENSOR="extruder1" MINIMUM={extruder_first_layer_temp[1]|float} MAXIMUM={extruder_first_layer_temp[1]|float + 5}
{% endif %}
{% endif %}
{% if hotend_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking hotend for {hotend_heat_soak_time} seconds..."
G4 P{(hotend_heat_soak_time * 1000)}
{% endif %}
{% if idex_mode == '' %}
_LED_PRINTING
{% else %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
_LED_PRINTING
{% else %}
{% if both_toolheads %}
_LED_PRINTING TOOLHEAD={initial_tool}
{% if toolchange_standby_temp > -1 %}
_LED_TOOLHEAD_STANDBY TOOLHEAD={0 if initial_tool == 1 else 1}
{% else %}
_LED_PRINTING TOOLHEAD={0 if initial_tool == 1 else 1}
{% endif %}
{% else %}
_LED_PRINTING TOOLHEAD={initial_tool}
_LED_DEACTIVATE_TOOLHEAD TOOLHEAD={0 if initial_tool == 1 else 1}
{% endif %}
{% endif %}
{% endif %}
_USER_START_PRINT_AFTER_HEATING_EXTRUDER { rawparams } X0={X0} X1={X1} Y0={Y0} Y1={Y1}
_START_PRINT_AFTER_HEATING_EXTRUDER X0={X0} X1={X1} Y0={Y0} Y1={Y1} INITIAL_TOOLHEAD={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
{% if idex_mode != '' %}
{% if not both_toolheads %}
{% if initial_tool != default_toolhead %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
{% endif %}
{% endif %}
{% endif %}
{% if idex_mode != '' %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% if toolchange_standby_temp > -1 %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if initial_tool == 1 else 'extruder1'} TARGET={toolchange_standby_temp}
{% endif %}
{% endif %}
{% endif %}
{% if idex_mode != '' %}
{% set x_offset = printer.toolhead.position.x|float - printer.gcode_move.gcode_position.x|float %}
{% endif %}
RESTORE_GCODE_STATE NAME=start_print_state
{% if idex_mode != '' %}
{% set act_idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% if act_idex_mode == "copy" or act_idex_mode == "mirror" %}
SET_GCODE_OFFSET X={x_offset} MOVE=0
{% endif %}
{% endif %}
{% if idex_mode != '' %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% if idex_mode == "copy" and idex_mode != act_idex_mode %}
_IDEX_COPY DANCE=0
{% elif idex_mode == "mirror" and idex_mode != act_idex_mode %}
_IDEX_MIRROR DANCE=0
{% endif %}
{% if printer["gcode_macro RatOS"].auto_center_subject|default(false)|lower == 'true' %}
RATOS_ECHO MSG="Adjusting object x-offset by {(object_xoffset)} mm"
SET_GCODE_OFFSET X_ADJUST={object_xoffset} MOVE=0
{% endif %}
{% else %}
_SELECT_TOOL T={initial_tool} TOOLSHIFT=false
{% if initial_tool != default_toolhead %}
{% set svv = printer.save_variables.variables %}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE={default_toolhead}
_SET_TOOLHEAD_OFFSET T={initial_tool} MOVE=0
{% endif %}
{% endif %}
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_SET_NOZZLE_TEMP_OFFSET RESET=True
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={initial_tool}
{% endif %}
_SET_EXTRUSION_MODE
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=True
{% if printer["gcode_macro _SELECT_TOOL"] is defined %}
SET_GCODE_VARIABLE MACRO=_SELECT_TOOL VARIABLE=last_timestamp VALUE={printer["print_stats"].print_duration}
{% endif %}
_USER_END_START_PRINT { rawparams }
G92 E0
_CHAMBER_FILTER_ON AT="after_print_start"
RATOS_ECHO MSG="Printing..."
[gcode_macro _START_PRINT_BEFORE_HEATING_BED]
gcode =
{% set target_idex_mode = params.IDEX_MODE|default("")|lower %}
{% set initial_toolhead = params.T|default(default_toolhead)|int %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set min_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float %}
{% set max_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float + 5 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set auto_z_offset_calibration = False %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro _VAOC"] is defined %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% if printer["gcode_macro _VAOC"].auto_z_offset_calibration|default("false")|lower == 'true' and is_fixed %}
{% if target_idex_mode != "copy" and target_idex_mode != "mirror" %}
{% if both_toolheads or initial_toolhead != default_toolhead %}
{% set auto_z_offset_calibration = True %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set is_stowable_probe = true if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' else false %}
{% if printer["gcode_macro RatOS"].preheat_extruder|lower == 'true' %}
RATOS_ECHO MSG="Pre-heating extruder..."
{% if printer["dual_carriage"] is defined %}
{% if auto_z_offset_calibration %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={min_temp}
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={min_temp}
{% else %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET={min_temp}
{% endif %}
{% else %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={min_temp}
{% endif %}
{% endif %}
{% if not is_stowable_probe %}
{% if printer["dual_carriage"] is defined and act_t != default_toolhead %}
_SELECT_TOOL T={default_toolhead} X={safe_home_x} Y={safe_home_y} TOOLSHIFT=True
{% endif %}
RATOS_ECHO MSG="Heat soaking z probe..."
{% if auto_z_offset_calibration %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% if default_toolhead == 0 %}
_SELECT_TOOL T=0 TOOLSHIFT=false
G1 X{safe_home_x - safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{safe_home_x + safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
{% elif default_toolhead == 1 %}
_SELECT_TOOL T=1 TOOLSHIFT=false
G1 X{safe_home_x + safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{safe_home_x - safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
{% endif %}
{% else %}
_MOVE_TO_SAFE_Z_HOME
{% endif %}
G0 Z2 F{z_speed}
{% endif %}
[gcode_macro _START_PRINT_AFTER_HEATING_BED]
gcode =
{% set target_idex_mode = params.IDEX_MODE|default("")|lower %}
{% set initial_toolhead = params.T|default(default_toolhead)|int %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set min_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float %}
{% set max_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float + 5 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set auto_z_offset_calibration = False %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro _VAOC"] is defined %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% if printer["gcode_macro _VAOC"].auto_z_offset_calibration|default("false")|lower == 'true' and is_fixed %}
{% if target_idex_mode != "copy" and target_idex_mode != "mirror" %}
{% if both_toolheads or initial_toolhead != default_toolhead %}
{% set auto_z_offset_calibration = True %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_wipe_before_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_wipe_before_true_zero|default(false)|lower == 'true' else false %}
{% if printer["gcode_macro RatOS"].preheat_extruder|lower == 'true' %}
RATOS_ECHO MSG="Waiting for extruder to be preheated..."
{% if printer["dual_carriage"] is defined %}
{% if auto_z_offset_calibration %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={max_temp}
TEMPERATURE_WAIT SENSOR=extruder1 MINIMUM={min_temp} MAXIMUM={max_temp}
{% else %}
{% if default_toolhead == 0 %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={max_temp}
{% else %}
TEMPERATURE_WAIT SENSOR=extruder1 MINIMUM={min_temp} MAXIMUM={max_temp}
{% endif %}
{% endif %}
{% else %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={max_temp}
{% endif %}
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
_Z_HOP
{% endif %}
{% if auto_z_offset_calibration %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
_SELECT_TOOL T={default_toolhead} X={safe_home_x} Y={safe_home_y} TOOLSHIFT=True
PARK_TOOLHEAD
_CLEANING_MOVE TOOLHEAD={default_toolhead}
_SELECT_TOOL T={0 if default_toolhead == 1 else 1} X={parking_position_t0 if default_toolhead == 1 else parking_position_t1} Y=0 TOOLSHIFT=false
_CLEANING_MOVE TOOLHEAD={0 if default_toolhead == 1 else 1}
_VAOC_CALIBRATE_Z_OFFSET AUTO_Z_OFFSET=True
_SELECT_TOOL T={default_toolhead} X={safe_home_x} Y={safe_home_y} TOOLSHIFT=false
{% endif %}
{% set needs_rehoming = False %}
{% if printer.z_tilt is defined and not printer.z_tilt.applied %}
RATOS_ECHO MSG="Adjusting Z tilt..."
Z_TILT_ADJUST
RATOS_ECHO MSG="Rehoming Z after Z tilt adjustment..."
{% set needs_rehoming = True %}
{% endif %}
{% if printer.quad_gantry_level is defined and not printer.quad_gantry_level.applied %}
RATOS_ECHO MSG="Running quad gantry leveling..."
QUAD_GANTRY_LEVEL
RATOS_ECHO MSG="Rehoming Z after quad gantry leveling..."
{% set needs_rehoming = True %}
{% endif %}
{% if needs_rehoming %}
G28 Z
{% endif %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero %}
{% if beacon_contact_wipe_before_true_zero %}
_START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE
{% endif %}
_START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE
{% endif %}
[gcode_macro _START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE]
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
G0 Z5 F{z_speed}
G0 X50 Y10 F{speed}
PROBE PROBE_METHOD=contact SAMPLES=1
BEACON_QUERY
[gcode_macro _START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE]
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_contact_true_zero_temp = printer["gcode_macro RatOS"].beacon_contact_true_zero_temp|default(150)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_true_zero_location = printer["gcode_macro RatOS"].beacon_contact_true_zero_location|default("front")|lower %}
{% set beacon_contact_true_zero_margin_x = printer["gcode_macro RatOS"].beacon_contact_true_zero_margin_x|default(30)|int %}
{% set beacon_contact_wipe_before_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_wipe_before_true_zero|default(false)|lower == 'true' else false %}
{% if beacon_contact_wipe_before_true_zero %}
{% if printer.beacon.last_probe_result|lower == "ok" %}
{% set last_z_offset = printer.beacon.last_z_result %}
RATOS_ECHO MSG="Auto calibration nozzle wipe with probe result {last_z_offset}..."
G0 Z{(0.2 + last_z_offset)} F{z_speed}
G0 X70 F300
{% else %}
RATOS_ECHO MSG="Skipping auto calibration nozzle wipe because probing failed!"
{% endif %}
{% endif %}
G0 Z5 F{z_speed}
_MOVE_TO_SAFE_Z_HOME
RATOS_ECHO MSG="Heating extruder to probing temperature..."
SET_HEATER_TEMPERATURE HEATER={"extruder" if default_toolhead == 0 else "extruder1"} TARGET={beacon_contact_true_zero_temp}
TEMPERATURE_WAIT SENSOR={"extruder" if default_toolhead == 0 else "extruder1"} MINIMUM={beacon_contact_true_zero_temp} MAXIMUM={beacon_contact_true_zero_temp + 5}
RATOS_ECHO MSG="Beacon contact auto calibration..."
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
G0 Z5 F{z_speed}
[gcode_macro _START_PRINT_AFTER_HEATING_EXTRUDER]
gcode =
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set first_x = printer["gcode_macro START_PRINT"].first_x|default(-1)|float %}
{% set first_y = printer["gcode_macro START_PRINT"].first_y|default(-1)|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_x = printable_x_max / 2.0 %}
{% set center_y = printable_y_max / 2.0 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% if printer["dual_carriage"] is defined %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% endif %}
{% set X0 = params.X0|default(-1)|int %}
{% set X1 = params.X1|default(-1)|int %}
{% set Y0 = params.Y0|default(-1)|int %}
{% set Y1 = params.Y1|default(-1)|int %}
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set initial_toolhead = params.INITIAL_TOOLHEAD|default(default_toolhead)|int %}
{% if idex_mode == '' %}
_PRIME
{% else %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
RATOS_ECHO PREFIX="IDEX" MSG="using combined prime offset for IDEX {idex_mode} mode"
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% else %}
{% if both_toolheads %}
{% if initial_toolhead == 0 %}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T1"
_SELECT_TOOL T=1 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T0"
_SELECT_TOOL T=0 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% else %}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T0"
_SELECT_TOOL T=0 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T1"
_SELECT_TOOL T=1 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% endif %}
{% else %}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T{initial_toolhead}"
_SELECT_TOOL T={initial_toolhead} TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% endif %}
{% endif %}
{% endif %}
CACHE_TOOLHEAD_SETTINGS KEY="start_print_after_heating_extruder"
SET_MACRO_TRAVEL_SETTINGS
{% if (X0 > -1 and Y1 > -1) or (first_x > 0 and first_y > 0) %}
{% if printer["dual_carriage"] is defined %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set max_accel = printer.toolhead.max_accel|float %}
{% set square_corner_velocity = printer.toolhead.square_corner_velocity|float %}
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0 SQUARE_CORNER_VELOCITY=20
{% endif %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
G0 Z3 F{z_speed}
{% endif %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro RatOS"].nozzle_priming|lower == 'false' %}
{% set first_z = 1 %}
{% else %}
{% set first_z = 3 %}
{% endif %}
{% if idex_mode == "mirror" %}
{% if first_y >= 0 %}
G0 Y{first_y} F{speed}
{% else %}
G0 Y{Y1} F{speed}
{% endif %}
{% endif %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro RatOS"].nozzle_priming|lower == 'false' %}
_MOVE_TO_LOADING_POSITION TOOLHEAD={initial_toolhead}
_PURGE_FILAMENT TOOLHEAD={initial_toolhead} E={printer["gcode_macro RatOS"].toolchange_first_purge|default(50)|float}
_CLEANING_MOVE TOOLHEAD={initial_toolhead}
{% endif %}
{% if first_x >= 0 and first_y >= 0 %}
G0 X{first_x} Y{first_y} Z{first_z} F{speed}
{% else %}
{% set first_x = X0 %}
{% set first_y = Y0 %}
{% if printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeblob' or printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeline' %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_x|lower == 'min' %}
{% set first_x = X0 %}
{% elif printer["gcode_macro RatOS"].nozzle_prime_start_x|lower == 'max' %}
{% set first_x = X1 %}
{% else %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_x|float <= center_x %}
{% set first_x = X0 %}
{% else %}
{% set first_x = X1 %}
{% endif %}
{% endif %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == 'min' %}
{% set first_y = Y0 %}
{% elif printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == 'max' %}
{% set first_y = Y1 %}
{% else %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_y|float <= center_y %}
{% set first_y = Y0 %}
{% else %}
{% set first_y = Y1 %}
{% endif %}
{% endif %}
{% endif %}
G0 X{first_x} Y{first_y} Z{first_z} F{speed}
{% endif %}
{% endif %}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="start_print_after_heating_extruder"
_LOAD_RATOS_SKEW_PROFILE
[gcode_macro _PRIME]
gcode =
{% if printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeblob' or printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeline' %}
PRIME_BLOB INITIAL_TOOLHEAD={params.INITIAL_TOOLHEAD} BOTH_TOOLHEADS={params.BOTH_TOOLHEADS} IDEX_MODE={params.IDEX_MODE} Y1={params.Y1}
{% else %}
{% if printer["dual_carriage"] is defined %}
{% if params.IDEX_MODE == "copy" %}
_IDEX_COPY DANCE=0
{% elif params.IDEX_MODE == "mirror" %}
_IDEX_MIRROR DANCE=0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro END_PRINT]
description = End print procedure, use this in your Slicer.
gcode =
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
SAVE_GCODE_STATE NAME=end_print_state
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE=False
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% if printer["gcode_macro RatOS"].auto_center_subject|default(false)|lower == 'true' %}
{% set object_xoffset = printer["gcode_macro START_PRINT"].object_xoffset|default(0)|float %}
RATOS_ECHO MSG="Adjusting object x-offset by {(0-object_xoffset)} mm"
SET_GCODE_OFFSET X_ADJUST={(0-object_xoffset)}
{% endif %}
{% endif %}
_USER_END_PRINT_BEFORE_HEATERS_OFF { rawparams }
_END_PRINT_BEFORE_HEATERS_OFF
TURN_OFF_HEATERS
_USER_END_PRINT_AFTER_HEATERS_OFF { rawparams }
_END_PRINT_AFTER_HEATERS_OFF
_USER_END_PRINT_PARK { rawparams }
_END_PRINT_PARK
{% if printer["gcode_macro RatOS"].skew_profile is defined %}
SET_SKEW CLEAR=1
{% endif %}
{% if printer["dual_carriage"] is not defined and printer["gcode_macro RatOS"].end_print_motors_off|lower != 'false' %}
M84
{% endif %}
M107
BED_MESH_CLEAR
RATOS_ECHO MSG="Done :)"
RESTORE_GCODE_STATE NAME=end_print_state
{% if printer["dual_carriage"] is defined %}
M84
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
{% if printer["dual_carriage"] is not defined %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% if beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
SET_GCODE_OFFSET Z=0 MOVE=0
{% endif %}
{% endif %}
_BEACON_SET_NOZZLE_TEMP_OFFSET RESET=True
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="start_print"
_CHAMBER_FILTER_ON AT="print_end"
_CHAMBER_FILTER_OFF
_CHAMBER_HEATER_OFF
_USER_END_PRINT_FINISHED { rawparams }
[gcode_macro _END_PRINT_BEFORE_HEATERS_OFF]
gcode =
RATOS_ECHO MSG="Cleaning up..."
[gcode_macro _END_PRINT_AFTER_HEATERS_OFF]
gcode =
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set current_z = printer.toolhead.position.z|float %}
{% set z_hop = printer["gcode_macro RatOS"].end_print_park_z_hop|float %}
{% set r = printer["gcode_macro RatOS"].end_print_retract_filament|default(4)|float %}
{% if current_z < (max_z - z_hop) %}
{% set z_safe = z_hop %}
{% else %}
{% set z_safe = max_z - current_z %}
{% endif %}
G91
G1 E-2 F3600
G0 Z{z_safe} F3600
G1 E-{(r-2)} F3600
G90
[gcode_macro _SET_EXTRUSION_MODE]
gcode =
{% if printer["gcode_macro RatOS"].relative_extrusion|lower == 'true' %}
M83
{% else %}
M82
{% endif %}
[gcode_macro GENERATE_SHAPER_GRAPHS]
description = Genarates input shaper resonances graphs for analysis. Uses the AXIS, TOOLHEAD, FREQUNECY_START and FREQUENCY_END parameter if you want to do specific measurements, (eg. GENERATE_SHAPER_GRAPHS AXIS=X TOOLHEAD=0 FREQUENCY_START=10 FREQUENCY_END=20)
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="generate_shaper_graphs"
SET_MACRO_TRAVEL_SETTINGS
CACHE_IS_GRAPH_FILES
{% set measure_t0 = true %}
{% set measure_t1 = true %}
{% if params.TOOLHEAD is defined %}
{% if params.TOOLHEAD|lower == '0' %}
{% set measure_t1 = false %}
{% elif params.TOOLHEAD|lower == '1' %}
{% set measure_t0 = false %}
{% else %}
{action_raise_error("Unknown toolhead specified. Expected 0 or 1 (left or right)")}
{% endif %}
{% endif %}
{% set axis = params.AXIS|default('')|lower %}
{% set freq_start = params.FREQUENCY_START|default(10)|int %}
{% set freq_end = params.FREQUENCY_END|default(133)|int %}
{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set adxl_chip = printer["gcode_macro RatOS"].adxl_chip %}
{% set probe_points = printer.configfile.settings.resonance_tester.probe_points[0] %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set copy_mode_offset = printable_x_max / 4.0 %}
{% set default_toolhead_parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
MAYBE_HOME
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% else %}
_IDEX_SINGLE
{% endif %}
G90
_LED_INPUT_SHAPER_START
{% if axis != '' %}
{% if axis == 'x' %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% endif %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if idex_mode == 'copy' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% elif idex_mode == 'mirror' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
{% else %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t0 == true and measure_t1 == false %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == false and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == true and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
PARK_TOOLHEAD
{% elif axis == 'y' %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% endif %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if idex_mode == 'copy' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% elif idex_mode == 'mirror' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
{% else %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t0 == true and measure_t1 == false %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == false and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == true and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
PARK_TOOLHEAD
{% else %}
{action_raise_error("Unknown axis specified. Expected X or Y.")}
{% endif %}
{% else %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% endif %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if idex_mode == 'copy' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% elif idex_mode == 'mirror' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
{% else %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t0 == true and measure_t1 == false %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == false and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == true and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
PARK_TOOLHEAD
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="generate_shaper_graphs"
{% if idex_mode != 'copy' and idex_mode != 'mirror' %}
_IDEX_SINGLE X={default_toolhead_parking_position} INIT=1
{% endif %}
_LED_INPUT_SHAPER_END
_LEARN_MORE_CALIBRATION
SHOW_IS_GRAPH_FILES TITLE="Shaper graph"
[gcode_shell_command generate_shaper_graph_x]
command = /home/pi/printer_data/config/RatOS/scripts/generate-shaper-graph-x.sh
timeout = 60.
verbose = True
[gcode_shell_command generate_shaper_graph_y]
command = /home/pi/printer_data/config/RatOS/scripts/generate-shaper-graph-y.sh
timeout = 60.
verbose = True
[gcode_macro MEASURE_COREXY_BELT_TENSION]
description = Generates resonance graph used to ensure belts are equally tensioned. Uses the AXIS, TOOLHEAD, FREQUNECY_START and FREQUENCY_END parameter if you want to do specific measurements, (eg. GENERATE_SHAPER_GRAPHS AXIS=X TOOLHEAD=0 FREQUENCY_START=10 FREQUENCY_END=20)
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="measure_corexy_belt_tension"
SET_MACRO_TRAVEL_SETTINGS
CACHE_IS_GRAPH_FILES
{% set measure_t0 = true %}
{% set measure_t1 = true %}
{% if params.TOOLHEAD is defined %}
{% if params.TOOLHEAD|lower == '0' %}
{% set measure_t1 = false %}
{% elif params.TOOLHEAD|lower == '1' %}
{% set measure_t0 = false %}
{% else %}
{action_raise_error("Unknown toolhead specified. Expected 0 or 1 (left or right)")}
{% endif %}
{% endif %}
{% set axis = params.AXIS|default('')|lower %}
{% set freq_start = params.FREQUENCY_START|default(10)|int %}
{% set freq_end = params.FREQUENCY_END|default(133)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set adxl_chip = printer["gcode_macro RatOS"].adxl_chip %}
{% set probe_points = printer.configfile.settings.resonance_tester.probe_points[0] %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set default_toolhead_parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
MAYBE_HOME
_IDEX_SINGLE
G90
_LED_INPUT_SHAPER_START
{% if axis != '' %}
{% if axis == 'x' %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" OUTPUT=raw_data NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" OUTPUT=raw_data NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t1 == true and measure_t0 == false %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 1"
{% elif measure_t1 == false and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 0"
{% elif measure_t1 == true and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS=x
{% endif %}
PARK_TOOLHEAD
{% elif axis == 'y' %}
{% if measure_t1 == false or measure_t0 == false %}
{action_raise_error("Axis specified. Not supported for belt tension on Y.")}
{% else %}
_SELECT_TOOL T=1 X={parking_position_t1} Y={probe_points[1]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]},{adxl_chip[0]}" OUTPUT=raw_data NAME=t2 POINT={parking_position_t1},{probe_points[1]},{probe_points[2]} FREQ_START={freq_start} FREQ_END={freq_end}
G4 P5000
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="y 2"
PARK_TOOLHEAD
{% endif %}
{% else %}
{action_raise_error("Unknown axis specified. Expected X or Y.")}
{% endif %}
{% else %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" OUTPUT=raw_data NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" OUTPUT=raw_data NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if params.TOOLHEAD is not defined %}
_SELECT_TOOL T=1 X={parking_position_t1} Y={probe_points[1]}
G1 X{parking_position_t1} F{speed}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]},{adxl_chip[0]}" OUTPUT=raw_data NAME=t2 POINT={parking_position_t1},{probe_points[1]},{probe_points[2]} FREQ_START={freq_start} FREQ_END={freq_end}
{% endif %}
G4 P5000
{% if measure_t1 == true and measure_t0 == false %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 1"
{% elif measure_t1 == false and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 0"
{% elif measure_t1 == true and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS=x
{% endif %}
{% if params.TOOLHEAD is not defined %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="y 2"
{% endif %}
PARK_TOOLHEAD
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="measure_corexy_belt_tension"
_IDEX_SINGLE X={default_toolhead_parking_position} INIT=1
_LED_INPUT_SHAPER_END
_LEARN_MORE_CALIBRATION
SHOW_IS_GRAPH_FILES TITLE="Belt Tension Graph"
[gcode_shell_command generate_belt_tension_graph]
command = /home/pi/printer_data/config/RatOS/scripts/generate-belt-tension-graph.sh
timeout = 90.
verbose = True
[idle_timeout]
gcode =
{% if printer.webhooks.state|lower == 'ready' %}
{% if printer.pause_resume.is_paused|lower == 'false' %}
RATOS_ECHO PREFIX="IDLE" MSG="2 hours since last activity. Powering off heaters and motors.."
TURN_OFF_HEATERS
M84
{% endif %}
{% endif %}
timeout = 7200
[temperature_sensor raspberry_pi]
sensor_type = temperature_host
[skew_correction]
[input_shaper]
[virtual_sdcard]
path = ~/printer_data/gcodes
[display_status]
[pause_resume]
[force_move]
enable_force_move = True
[respond]
[resonance_generator]
[ratos]
allow_unknown_gcode_generator = True
enable_gcode_transform = True
[exclude_object]
[heater_bed]
heater_pin = heater_bed_heating_pin
sensor_pin = heater_bed_sensor_pin
sensor_type = Generic 3950
min_temp = 0
max_temp = 140
pwm_cycle_time = 0.02
control = pid
pid_kp = 67.827
pid_ki = 2.380
pid_kd = 483.268
[fan]
pin = rpi:gpio4
shutdown_speed = 1.0
[heater_fan toolhead_cooling_fan]
pin = toolboard_t0:PA1
fan_speed = 1
heater = extruder
[printer]
kinematics = ratos_hybrid_corexy
max_velocity = 800
max_accel = 10000
minimum_cruise_ratio = 0.5
max_z_velocity = 50
max_z_accel = 600
square_corner_velocity = 5
[ratos_hybrid_corexy]
inverted = true
[dual_carriage]
axis = x
safe_distance = 55
position_max = 559.8
position_endstop = 559.8
position_min = 0
step_pin = PF9
dir_pin = dual_carriage_dir_pin
enable_pin = !PG2
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
homing_speed = 50
endstop_pin = toolboard_t1:PB6
[gcode_macro IDEX_SINGLE]
gcode =
_IDEX_REMAP_TOOLHEADS ENABLE=False
_IDEX_SINGLE
[gcode_macro _IDEX_SINGLE]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_single"
SET_MACRO_TRAVEL_SETTINGS
{% set init = params.INIT|default(0)|int %}
{% set new_x = params.X|default(-1)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_x = printable_x_max / 2 %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set parking_position_act_t = printer["gcode_macro T%s" % (0 if act_t==1 else 1)].parking_position|float %}
{% set parking_position_default_t = printer["gcode_macro T%s" % (0 if default_toolhead==1 else 1)].parking_position|float %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="init: {init}, new_x: {new_x}, idex_mode: {idex_mode}, printable_x_max: {printable_x_max}, center_x: {center_x}, act_t: {act_t}"
{% if idex_mode == "copy" or idex_mode == "mirror" or init == 1 %}
{% if 'x' in printer.toolhead.homed_axes %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="reset gcode offset"
G1 X{center_x} F{(speed)}
SET_GCODE_OFFSET X_ADJUST={center_x / 2} MOVE=0
{% endif %}
{% endif %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="activate default carriage"
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead} MODE=PRIMARY
{% if 'x' in printer.toolhead.homed_axes %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set toolheads"
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
G90
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="move secondary toolhead to parking position."
SET_DUAL_CARRIAGE CARRIAGE={0 if default_toolhead==1 else 1}
G1 X{parking_position_default_t} F{speed}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="move default toolhead to its new position."
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead}
{% if new_x == -1 %}
{% set new_x = center_x %}
{% endif %}
G1 X{new_x} F{speed}
M400
{% else %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="X Axis not homed."
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead}
{% endif %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set extruder motion queue."
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if default_toolhead==0 else default_toolhead}
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set toolhead offset."
_SET_TOOLHEAD_OFFSET T={default_toolhead}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set input shaper."
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[default_toolhead]|float)} SHAPER_FREQ_Y={(shaper_y_freq[default_toolhead]|float)} SHAPER_TYPE_X={(shaper_x_type[default_toolhead]|lower)} SHAPER_TYPE_Y={(shaper_y_type[default_toolhead]|lower)}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="update Frontend."
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE={True if default_toolhead==0 else False}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE={True if default_toolhead==1 else False}
{% else %}
{% if "xyz" in printer.toolhead.homed_axes %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="move secondary toolhead to parking position"
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={0 if act_t==1 else 1}
G1 X{parking_position_act_t} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={act_t}
{% else %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="Axis not homed."
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead}
{% endif %}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_single"
[gcode_macro IDEX_COPY]
gcode =
_IDEX_COPY
[gcode_macro _IDEX_COPY]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_copy"
SET_MACRO_TRAVEL_SETTINGS
{% set y = params.Y|default(-1)|int %}
{% set dance = params.DANCE|default(1)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
DEBUG_ECHO PREFIX="IDEX_COPY" MSG="idex_mode: {idex_mode}, printable_x_max: {printable_x_max}, center_x: {center_x}, dance: {dance}, y: {y}"
{% if "xyz" in printer.toolhead.homed_axes %}
{% if idex_mode != "copy" %}
{% if idex_mode == "mirror" %}
{% if y>=0 %}
G1 X{center_x} Y{y} F{(speed)}
{% else %}
G1 X{center_x} F{(speed)}
{% endif %}
{% endif %}
{% if idex_mode == "primary" or idex_mode == "inactive" %}
_IDEX_SET_TOOLHEADS
{% endif %}
ACTIVATE_EXTRUDER EXTRUDER='extruder'
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
{% if idex_mode != "mirror" %}
SET_PRESSURE_ADVANCE
{% endif %}
{% if idex_mode != "mirror" %}
SET_GCODE_OFFSET X_ADJUST=-{center_x / 2} MOVE=0
{% else %}
_SET_TOOLHEAD_OFFSET T={default_toolhead}
{% endif %}
{% if dance == 1 %}
G1 X{center_x} F{(speed)}
G1 X{center_x - 30} F{(speed)}
G1 X{center_x + 30} F{(speed)}
G1 X{center_x} F{(speed)}
{% endif %}
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[2]|float)} SHAPER_FREQ_Y={(shaper_y_freq[2]|float)} SHAPER_TYPE_X={(shaper_x_type[2]|lower)} SHAPER_TYPE_Y={(shaper_y_type[2]|lower)}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE=True
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE=True
{% endif %}
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_copy"
[gcode_macro IDEX_MIRROR]
gcode =
_IDEX_MIRROR
[gcode_macro _IDEX_MIRROR]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_mirror"
SET_MACRO_TRAVEL_SETTINGS
{% set dance = params.DANCE|default(1)|int %}
{% set priming = params.PRIMING|default(0)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
DEBUG_ECHO PREFIX="IDEX_MIRROR" MSG="idex_mode: {idex_mode}, printable_x_max: {printable_x_max}, center_x: {center_x}, dance: {dance}"
{% if "xyz" in printer.toolhead.homed_axes %}
{% if idex_mode != "mirror" %}
{% if idex_mode == "copy" %}
G1 X{center_x} F{(speed)}
{% endif %}
{% if idex_mode == "primary" or idex_mode == "inactive" %}
_IDEX_SET_TOOLHEADS MIRROR_PRIMING={params.PRIMING}
{% endif %}
ACTIVATE_EXTRUDER EXTRUDER='extruder'
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR
{% if idex_mode != "copy" %}
SET_PRESSURE_ADVANCE
{% endif %}
{% if idex_mode != "copy" %}
SET_GCODE_OFFSET X_ADJUST=-{center_x / 2} MOVE=0
{% else %}
_SET_TOOLHEAD_OFFSET T={default_toolhead}
{% endif %}
{% if dance and not priming %}
G1 X{center_x} F{(speed)}
G1 X{center_x - 30} F{(speed)}
G1 X{center_x + 30} F{(speed)}
G1 X{center_x} F{(speed)}
{% endif %}
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[3]|float)} SHAPER_FREQ_Y={(shaper_y_freq[3]|float)} SHAPER_TYPE_X={(shaper_x_type[3]|lower)} SHAPER_TYPE_Y={(shaper_y_type[3]|lower)}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE=True
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE=True
{% endif %}
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_mirror"
[gcode_macro _IDEX_SET_TOOLHEADS]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_set_toolheads"
SET_MACRO_TRAVEL_SETTINGS
{% set mirror_priming = params.MIRROR_PRIMING|default(0)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set parking_position_inactive_t = printer["gcode_macro T%s" % (0 if act_t==1 else 1)].parking_position|float %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_x = printable_x_max / 2 %}
DEBUG_ECHO PREFIX="_IDEX_SET_TOOLHEADS" MSG="idex_mode: {idex_mode}, act_t: {act_t}, center_x: {center_x}, mirror_priming: {mirror_priming}"
{% if act_t != default_toolhead %}
_SET_TOOLHEAD_OFFSET T={default_toolhead} MOVE=1
{% endif %}
{% if mirror_priming %}
{% if parking_position_t0|abs < parking_position_t1 - printable_x_max %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{printable_x_max + parking_position_t0|abs} F{(speed)}
{% else %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{0 - (parking_position_t1 - printable_x_max)} F{(speed)}
{% endif %}
{% else %}
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={0 if act_t==1 else 1} MODE=PRIMARY
G1 X{parking_position_inactive_t} F{(speed)}
{% if act_t==1 %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{center_x / 2 + center_x} F{(speed)}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{center_x / 2} F{(speed)}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{center_x / 2 + center_x} F{(speed)}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_set_toolheads"
[gcode_macro IDEX_PARK]
gcode =
PARK_TOOLHEAD
[gcode_macro PARK_TOOLHEAD]
gcode =
{% set idex_mode = 'none' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% set act_t = 1 if idex_mode=='primary' else 0 %}
DEBUG_ECHO PREFIX="PARK_TOOLHEAD" MSG="Parking T{act_t}.."
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set parking_position_act_t = printer["gcode_macro T%s" % act_t].parking_position|float %}
{% set parking_position_inact_t = printer["gcode_macro T%s" % (0 if act_t==1 else 1)].parking_position|float %}
{% set printable_y_min = printer["gcode_macro RatOS"].printable_y_min|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% if idex_mode != "copy" and idex_mode != "mirror" and 'xy' in printer.toolhead.homed_axes %}
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% elif printer.toolhead.position.y|float < printable_y_min %}
G1 Y{printable_y_min} F{speed}
{% endif %}
SAVE_GCODE_STATE NAME=_PARK_TOOLHEAD
G90
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0.5
G1 X{parking_position_act_t} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={0 if act_t==1 else 1}
G1 X{parking_position_inact_t} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={act_t}
SET_VELOCITY_LIMIT ACCEL={printer.toolhead.max_accel} MINIMUM_CRUISE_RATIO=0.5
M400
RESTORE_GCODE_STATE NAME=_PARK_TOOLHEAD
{% endif %}
[gcode_macro JOIN_SPOOLS]
gcode =
{% set spools = params.SPOOLS|default("") %}
{% if spools == "" %}
_IDEX_JOIN_SPOOLS ENABLE=false
{% else %}
{% if spools != "0,1" and spools != "1,0" %}
RATOS_ECHO MSG="Wrong spool configuration!"
RATOS_ECHO MSG="Join Spools = JOIN_SPOOLS SPOOLS=0,1"
RATOS_ECHO MSG="Deactivate = JOIN_SPOOLS SPOOLS="
{% else %}
{% if spools == "0,1" or spools == "1,0" %}
_IDEX_JOIN_SPOOLS ENABLE=true
{% else %}
_IDEX_JOIN_SPOOLS ENABLE=false
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _IDEX_JOIN_SPOOLS]
variable_enabled = False
gcode =
{% set enable = true if params.ENABLE|default(false)|lower == 'true' else false %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% if enable %}
{% set has_t0_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined else false %}
{% set has_t1_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined else false %}
{% set has_t0_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t0"] is defined else false %}
{% set has_t1_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t1"] is defined else false %}
{% if (has_t0_toolhead_filament_sensor and has_t1_toolhead_filament_sensor) or (has_t0_bowden_filament_sensor and has_t1_bowden_filament_sensor) %}
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=True
RATOS_ECHO MSG="Spool joining enabled for the next print!"
{% else %}
RATOS_ECHO MSG="Can not enable spool joining! No filament sensors found."
{% endif %}
{% else %}
RATOS_ECHO MSG="Spool joining deactivated!"
{% endif %}
{% else %}
RATOS_ECHO MSG="Spool joining is not possible in copy and mirror mode!"
{% endif %}
[gcode_macro _JOIN_SPOOL]
gcode =
{% set old_toolhead = params.TOOLHEAD|int %}
{% set new_toolhead = 0 if old_toolhead == 1 else 1 %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set purge_after_load = printer["gcode_macro T%s" % new_toolhead].purge_after_load|float %}
DEBUG_ECHO PREFIX="_JOIN_SPOOL" MSG="toolhead: {new_toolhead}"
{% set has_filament = true %}
{% set has_new_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % new_toolhead] is defined else false %}
{% set has_new_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t%s" % new_toolhead] is defined else false %}
{% if has_new_toolhead_filament_sensor %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % new_toolhead].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % new_toolhead].filament_detected|lower != "true" %}
{% set has_filament = false %}
{% endif %}
{% else %}
{% set has_filament = false %}
{% endif %}
{% endif %}
{% if has_new_bowden_filament_sensor %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % new_toolhead].enabled|lower == "true" %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % new_toolhead].filament_detected|lower != "true" %}
{% set has_filament = false %}
{% endif %}
{% else %}
{% set has_filament = false %}
{% endif %}
{% endif %}
{% if has_filament %}
RATOS_ECHO MSG="Joining spools! Please wait for extruder to heat up...."
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead VALUE={new_toolhead}
_DEACTIVATE_TOOLHEAD TOOLHEAD={old_toolhead}
{% set extruder_first_layer_temp = (printer["gcode_macro START_PRINT"].extruder_first_layer_temp|default("")).split(",") %}
{% set extruder_other_layer_temp = (printer["gcode_macro START_PRINT"].extruder_other_layer_temp|default("")).split(",") %}
{% if printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|int < 2 %}
{% set extruder_temp = extruder_first_layer_temp[new_toolhead]|float %}
{% else %}
{% set extruder_temp = extruder_other_layer_temp[new_toolhead]|float %}
{% endif %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if new_toolhead == 0 else 'extruder1'} TARGET={extruder_temp}
TEMPERATURE_WAIT SENSOR={'extruder' if new_toolhead == 0 else 'extruder1'} MINIMUM={extruder_temp} MAXIMUM={extruder_temp + 5}
{% if purge_after_load > 0 %}
SET_DUAL_CARRIAGE CARRIAGE={new_toolhead} MODE=PRIMARY
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_toolhead == 0 else new_toolhead}
_MOVE_TO_LOADING_POSITION TOOLHEAD={new_toolhead}
_PURGE_FILAMENT TOOLHEAD={new_toolhead} E={purge_after_load}
_CLEANING_MOVE TOOLHEAD={new_toolhead}
SET_DUAL_CARRIAGE CARRIAGE={old_toolhead} MODE=PRIMARY
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if old_toolhead == 0 else old_toolhead}
{% endif %}
RESUME TOOLHEAD={new_toolhead}
_IDEX_JOIN_SPOOLS ENABLE=false
{% else %}
{ action_raise_error("Spool join failed! No filament found or filament sensor is disabled.") }
{% endif %}
[gcode_macro REMAP_TOOLHEADS]
gcode =
{% set toolheads = params.TOOLHEADS|default("") %}
{% if toolheads == "" %}
_IDEX_REMAP_TOOLHEADS ENABLE=false
{% else %}
{% if toolheads != "0,1" and toolheads != "1,0" %}
RATOS_ECHO MSG="Wrong toolhead configuration!"
RATOS_ECHO MSG="Remap = REMAP_TOOLHEADS TOOLHEADS=0,1"
RATOS_ECHO MSG="Deactivate = REMAP_TOOLHEADS TOOLHEADS="
{% else %}
{% if toolheads == "0,1" or toolheads == "1,0" %}
_IDEX_REMAP_TOOLHEADS ENABLE=true
_IDEX_SINGLE
{% else %}
_IDEX_REMAP_TOOLHEADS ENABLE=false
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _IDEX_REMAP_TOOLHEADS]
variable_enabled = False
gcode =
{% set enable = true if params.ENABLE|default(false)|lower == 'true' else false %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if not enable or (idex_mode != "copy" and idex_mode != "mirror") %}
{% if enable %}
RATOS_ECHO MSG="Toolhead remapping enabled for the next print!"
{% else %}
RATOS_ECHO MSG="Toolhead remapping deactivated!"
{% endif %}
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE={enable}
{% else %}
RATOS_ECHO MSG="Toolhead remapping not possible in copy and mirror mode!"
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE=False
{% endif %}
[gcode_macro SHAPER_CALIBRATE]
rename_existing = SHAPER_CALIBRATE_ORG
gcode =
RATOS_ECHO PREFIX="IDEX" MSG="SHAPER_CALIBRATE is useless on IDEX machines. Please use the GENERATE_SHAPER_GRAPHS macro and type the values into `variable_shaper_*_freq` and `variable_shaper_*_type manually`."
[gcode_shell_command generate_shaper_graphs]
command = /home/pi/printer_data/config/RatOS/scripts/idex-generate-shaper-graph.sh
timeout = 120.
verbose = True
[gcode_shell_command generate_tension_graphs]
command = /home/pi/printer_data/config/RatOS/scripts/idex-generate-belt-tension-graph.sh
timeout = 120.
verbose = True
[gcode_macro SET_PRESSURE_ADVANCE]
variable_snyc_toolheads = False
rename_existing = SET_PRESSURE_ADVANCE_BASE
gcode =
{% if params.SYNC_TOOLHEADS is defined %}
{% set snyc_toolheads = true if params.SYNC_TOOLHEADS|default(false)|lower == 'true' else false %}
SET_GCODE_VARIABLE MACRO=SET_PRESSURE_ADVANCE VARIABLE=snyc_toolheads VALUE=True
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG="Syncing toolheads..."
{% else %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' or snyc_toolheads %}
{% set advance = params.ADVANCE|default(printer['extruder'].pressure_advance|float)|float %}
{% set smooth_time = params.SMOOTH_TIME|default(printer['extruder'].smooth_time|float)|float %}
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG="T0"
SET_PRESSURE_ADVANCE_BASE EXTRUDER='extruder' ADVANCE={advance} SMOOTH_TIME={smooth_time}
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG="T1"
SET_PRESSURE_ADVANCE_BASE EXTRUDER='extruder1' ADVANCE={advance} SMOOTH_TIME={smooth_time}
{% else %}
{% set extruder = 'extruder' if act_t == 0 else 'extruder1' %}
{% if params.EXTRUDER is defined %}
{% set extruder = params.EXTRUDER %}
{% endif %}
{% if extruder == 'extruder' or extruder == 'extruder1' %}
{% set advance = params.ADVANCE|default(printer['%s' % extruder].pressure_advance|float)|float %}
{% set smooth_time = params.SMOOTH_TIME|default(printer['%s' % extruder].smooth_time|float)|float %}
SET_PRESSURE_ADVANCE_BASE EXTRUDER={extruder} ADVANCE={advance} SMOOTH_TIME={smooth_time}
{% if params.EXTRUDER is not defined %}
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG={"T%s" % act_t}
{% endif %}
{% else %}
SET_PRESSURE_ADVANCE_BASE { rawparams }
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M106]
rename_existing = M106.1
variable_swap_speed = -1
gcode =
{% set s = [[params.S|default(255)|int, 255]|min, 0]|max %}
{% set p = params.P|default(-1)|int %}
{% set speed = s / 255 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set t = 1 if idex_mode=='primary' else 0 %}
{% set sync_fans = true if printer["gcode_macro RatOS"].toolchange_sync_fans|default(0)|int == 1 else false %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set sync_fans = true %}
{% endif %}
{% if sync_fans and idex_mode != "copy" and idex_mode != "mirror" %}
{% set total_toolshifts = printer["gcode_macro START_PRINT"].total_toolshifts|int %}
{% set toolshift_count = printer["gcode_macro _TOOLCHANGE"].toolshift_count|int %}
{% if toolshift_count > total_toolshifts %}
{% set sync_fans = false %}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=M106 VARIABLE=swap_speed VALUE=-1
{% if p == -1 %}
{% if speed == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={speed}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={speed}
{% else %}
SET_GCODE_VARIABLE MACRO=M106 VARIABLE=swap_speed VALUE={speed}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={(speed if (t == 0 or sync_fans) else 0)}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={(speed if (t == 1 or sync_fans) else 0)}
{% endif %}
{% else %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={speed if t == p else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={speed if t == p else 0}
{% endif %}
M106.1 S{s}
[gcode_macro M107]
rename_existing = M107.1
gcode =
{% set p = params.P|default(-1)|int %}
M106 S0 P{p}
[gcode_macro _SELECT_TOOL]
variable_last_timestamp = 0
gcode =
{% if params.T is defined %}
{% set idex_mode = '' %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if "xyz" not in printer.toolhead.homed_axes and (idex_mode == "copy" or idex_mode == "mirror") %}
_IDEX_SINGLE
{% set idex_mode = 'reset' %}
{% endif %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set new_t = params.T|int %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% set swap_toolheads = true if printer["gcode_macro _IDEX_REMAP_TOOLHEADS"].enabled|default(false)|lower == 'true' else false %}
{% if swap_toolheads and is_printing_gcode %}
{% set new_t = 0 if new_t == 1 else 1 %}
{% endif %}
{% set toolchange_prepurging_timer = printer["gcode_macro RatOS"].toolchange_prepurging_timer|default(0)|int %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
DEBUG_ECHO PREFIX="_SELECT_TOOL" MSG="act_t: {act_t}, new_t: {new_t}, is_printing_gcode: {is_printing_gcode}, swap_toolheads: {swap_toolheads}, toolchange_standby_temp: {toolchange_standby_temp}"
{% set act_extruder = 'extruder%s' % ('' if new_t == 0 else new_t) %}
{% if new_t != act_t or printer.toolhead.extruder != act_extruder or idex_mode == 'reset' %}
RATOS_ECHO PREFIX="IDEX" MSG="Selecting T{new_t}.."
M220 S100
{% set new_x = params.X|default(-1)|float %}
{% set new_y = params.Y|default(-1)|float %}
{% set new_z = params.Z|default(-1)|float %}
{% set toolshift = true if params.TOOLSHIFT|default(1)|int == 1 else false %}
{% set park_t0 = params.PARK_T0|default(-1)|float %}
{% set park_t1 = params.PARK_T1|default(-1)|float %}
{% if "xyz" not in printer.toolhead.homed_axes %}
{% set toolshift = false %}
{% endif %}
{% set fan_speed = printer["fan_generic part_fan_t%s" % act_t].speed %}
{% set deactivate_toolhead = false %}
{% if is_printing_gcode %}
{% set total_toolshifts = printer["gcode_macro START_PRINT"].total_toolshifts|int %}
{% set toolshift_count = printer["gcode_macro _TOOLCHANGE"].toolshift_count|int + 1 %}
SET_GCODE_VARIABLE MACRO=_TOOLCHANGE VARIABLE=toolshift_count VALUE={toolshift_count}
{% if toolshift_count == total_toolshifts %}
{% set deactivate_toolhead = true %}
{% endif %}
{% endif %}
{% set needs_wakeup = true if printer["gcode_macro T%s" % new_t].standby|default(false)|lower == 'true' else false %}
{% set needs_purging = false %}
{% set wake_up_purge = printer["gcode_macro RatOS"].toolchange_purge|default(0)|float %}
{% if is_printing_gcode and toolchange_prepurging_timer > 0 and wake_up_purge > 0 %}
{% set new_timestamp = printer["print_stats"].print_duration %}
{% set elapsed_time = new_timestamp - last_timestamp %}
SET_GCODE_VARIABLE MACRO=_SELECT_TOOL VARIABLE=last_timestamp VALUE={new_timestamp}
{% if elapsed_time > toolchange_prepurging_timer %}
{% set needs_purging = true %}
{% endif %}
{% endif %}
{% set first_use_purge = printer["gcode_macro RatOS"].toolchange_first_purge %}
{% if toolshift_count == 1 and first_use_purge > 0 %}
{% set needs_purging = true %}
{% endif %}
{% if is_printing_gcode and (toolchange_standby_temp > -1 or needs_purging or needs_wakeup) %}
_TOOLHEAD_STANDBY TOOLHEAD={act_t}
{% if deactivate_toolhead %}
_DEACTIVATE_TOOLHEAD TOOLHEAD={act_t}
{% endif %}
_TOOLHEAD_WAKEUP TOOLHEAD={new_t} X={new_x} Y={new_y} Z={new_z} FAN_SPEED={fan_speed} TOOLSHIFT_COUNT={toolshift_count}
{% else %}
{% set sync_fans = true if printer["gcode_macro RatOS"].toolchange_sync_fans|default(false)|lower == 'true' else false %}
{% if fan_speed > 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed if (new_t == 0 or sync_fans) else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed if (new_t == 1 or sync_fans) else 0}
M106.1 S{fan_speed}
{% endif %}
_TOOLCHANGE T={new_t} X={new_x} Y={new_y} Z={new_z} PARK_T0={park_t0} PARK_T1={park_t1} TOOLSHIFT={toolshift}
{% if deactivate_toolhead %}
_DEACTIVATE_TOOLHEAD TOOLHEAD={act_t}
{% endif %}
{% endif %}
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[new_t]|float)} SHAPER_FREQ_Y={(shaper_y_freq[new_t]|float)} SHAPER_TYPE_X={(shaper_x_type[new_t]|lower)} SHAPER_TYPE_Y={(shaper_y_type[new_t]|lower)}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE={True if new_t == 0 else False}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE={True if new_t == 1 else False}
{% if 'x' in printer.toolhead.homed_axes %}
{% set sanity_check_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if new_t == 0 %}
{% if printer.toolhead.extruder == 'extruder' %}
{% if sanity_check_idex_mode == 'primary' %}
{ action_emergency_stop("Switched states detected in idex_mode.py. Please restart the host controller.") }
{% endif %}
{% endif %}
{% elif new_t == 1 %}
{% if printer.toolhead.extruder == 'extruder1' %}
{% if sanity_check_idex_mode == 'inactive' %}
{ action_emergency_stop("Switched states detected in idex_mode.py. Please restart the host controller.") }
{% endif %}
{% endif %}
{% endif %}
{% endif %}
G90
G92 E0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _TOOLHEAD_STANDBY]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set config_z_hop = printer["gcode_macro RatOS"].toolchange_zhop|default(2.0)|float %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
RATOS_ECHO PREFIX="IDEX" MSG="Putting toolhead T{toolhead} into standby mode."
DEBUG_ECHO PREFIX="_TOOLHEAD_STANDBY" MSG="toolhead: {toolhead}, config_z_hop: {config_z_hop}, toolchange_standby_temp: {toolchange_standby_temp}"
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
M106.1 S0
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={config_z_hop} T={toolhead} SYNC=0
PARK_TOOLHEAD
_CLEANING_MOVE TOOLHEAD={toolhead}
{% if toolchange_standby_temp > -1 %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={toolchange_standby_temp}
{% endif %}
{% if toolchange_standby_temp > -1 %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=standby VALUE=True
{% endif %}
_LED_TOOLHEAD_STANDBY TOOLHEAD={toolhead}
[gcode_macro _TOOLHEAD_WAKEUP]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set fan_speed = params.FAN_SPEED|float %}
{% set new_x = params.X|default(-1)|float %}
{% set new_y = params.Y|default(-1)|float %}
{% set new_z = params.Z|default(-1)|float %}
{% set toolshift_count = params.TOOLSHIFT_COUNT|default(0)|int %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set config_z_hop = printer["gcode_macro RatOS"].toolchange_zhop|default(2.0)|float %}
{% set purge = printer["gcode_macro RatOS"].toolchange_purge|default(0)|float %}
{% set e = printer["gcode_macro RatOS"].toolchange_retraction %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
{% if toolshift_count == 1 %}
{% set purge = printer["gcode_macro RatOS"].toolchange_first_purge %}
{% endif %}
{% set needs_wakeup = true if printer["gcode_macro T%s" % toolhead].standby|default(false)|lower == 'true' else false %}
RATOS_ECHO PREFIX="IDEX" MSG="Waking up toolhead T{toolhead}. Please wait for extruder to heat up..."
DEBUG_ECHO PREFIX="_TOOLHEAD_WAKEUP" MSG="toolhead: {toolhead}, fan_speed: {fan_speed}, new_x: {new_x}, new_y: {new_y}, new_z: {new_z}, config_z_hop: {config_z_hop}"
_LED_TOOLHEAD_WAKEUP TOOLHEAD={toolhead}
SET_DUAL_CARRIAGE CARRIAGE={toolhead} MODE=PRIMARY
_SET_TOOLHEAD_OFFSET T={toolhead} MOVE=1
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if toolhead == 0 else toolhead}
{% set max_accel = printer.toolhead.max_accel|float %}
{% set square_corner_velocity = printer.toolhead.square_corner_velocity|float %}
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0 SQUARE_CORNER_VELOCITY=20
{% set extruder_first_layer_temp = (printer["gcode_macro START_PRINT"].extruder_first_layer_temp|default("")).split(",") %}
{% set extruder_other_layer_temp = (printer["gcode_macro START_PRINT"].extruder_other_layer_temp|default("")).split(",") %}
{% if needs_wakeup %}
{% if printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|int < 2 %}
{% set temp = extruder_first_layer_temp[toolhead]|float %}
{% else %}
{% set temp = extruder_other_layer_temp[toolhead]|float %}
{% endif %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={temp}
TEMPERATURE_WAIT SENSOR={'extruder' if toolhead == 0 else 'extruder1'} MINIMUM={temp} MAXIMUM={temp + 5}
{% endif %}
_LED_PRINTING TOOLHEAD={toolhead}
{% if purge > 0 %}
_MOVE_TO_LOADING_POSITION TOOLHEAD={toolhead}
_PURGE_FILAMENT TOOLHEAD={toolhead} E={purge}
_CLEANING_MOVE TOOLHEAD={toolhead}
{% endif %}
{% if fan_speed > 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed if toolhead == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed if toolhead == 1 else 0}
M106.1 S{fan_speed}
{% endif %}
G92 E0
G1 E-{e} F{feedrate}
G92 E0
{% if new_x >= 0 and new_y >= 0 %}
G1 X{new_x} Y{new_y} F{speed}
_ZDROP_AFTER_TOOLCHANGE Z_DROP={config_z_hop} T={toolhead} SYNC=0
{% endif %}
SET_VELOCITY_LIMIT ACCEL={max_accel} MINIMUM_CRUISE_RATIO=0.5 SQUARE_CORNER_VELOCITY={square_corner_velocity}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=standby VALUE=False
[gcode_macro _TOOLCHANGE]
variable_toolshift_count = 0
gcode =
{% set new_t = params.T|default(-1)|int %}
{% set new_x = params.X|default(-1.0)|float %}
{% set new_y = params.Y|default(-1.0)|float %}
{% set new_z = params.Z|default(-1.0)|float %}
{% set park_t0 = params.PARK_T0|default(-1)|float %}
{% set park_t1 = params.PARK_T1|default(-1)|float %}
{% set toolshift = true if params.TOOLSHIFT|default(true)|lower == 'true' else false %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="T: {new_t}, X: {new_x}, Y: {new_y}, Z: {new_z}, PARK_T0: {park_t0}, PARK_T1: {park_t1}, IS_PRINTING_GCODE: {is_printing_gcode}, TOOLSHIFT: {toolshift}"
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set config_z_hop = printer["gcode_macro RatOS"].toolchange_zhop|default(2.0)|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set parking_position_act_t = printer["gcode_macro T%s" % act_t].parking_position|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|int %}
{% if park_t0 >= 0 and park_t1 >= 0 %}
{% set parking_position_t0 = park_t0 %}
{% set parking_position_t1 = park_t1 %}
{% set parking_position_act_t = park_t0 if act_t == 0 else park_t1 %}
{% endif %}
{% if not is_printing_gcode and not toolshift %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="Changing tool to T{new_t} without retracting/extruding or moving the toolheads except for parking."
{% if "xyz" in printer.toolhead.homed_axes %}
G1 X{parking_position_act_t} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={new_t} MODE=PRIMARY
_SET_TOOLHEAD_OFFSET T={new_t} MOVE={1 if "xyz" in printer.toolhead.homed_axes else 0}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% else %}
G90
{% set max_accel = printer.toolhead.max_accel|float %}
{% set square_corner_velocity = printer.toolhead.square_corner_velocity|float %}
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0 SQUARE_CORNER_VELOCITY=20
{% if not is_printing_gcode and toolshift and new_x < 0 and new_y < 0 %}
{% set new_x = center_x %}
{% set new_y = printer.gcode_move.gcode_position.y|float %}
{% endif %}
{% if new_x < 0 or new_y < 0 %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="No new X or Y position given, parking the active toolhead and activating the new toolhead without moving it."
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={config_z_hop} T={new_t}
{% if "x" in printer.toolhead.homed_axes %}
G1 X{parking_position_act_t} F{speed}
{% endif %}
{% if is_printing_gcode %}
_EXTRUDE T={new_t}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={new_t}
_SET_TOOLHEAD_OFFSET T={new_t} MOVE={1 if "xyz" in printer.toolhead.homed_axes else 0}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% else %}
{% if "xyz" not in printer.toolhead.homed_axes %}
SET_DUAL_CARRIAGE CARRIAGE={new_t}
_SET_TOOLHEAD_OFFSET T={new_t}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% else %}
{% set svv = printer.save_variables.variables %}
{% if new_t == default_toolhead %}
{% set xoffset = svv.idex_xoffset %}
{% set yoffset = svv.idex_yoffset %}
{% set zoffset = svv.idex_zoffset %}
{% else %}
{% set xoffset = 0 - svv.idex_xoffset %}
{% set yoffset = 0 - svv.idex_yoffset %}
{% set zoffset = 0 - svv.idex_zoffset %}
{% endif %}
{% if svv.idex_applied_offset == new_t %}
{% set xoffset = 0 %}
{% set yoffset = 0 %}
{% set zoffset = 0 %}
{% endif %}
{% set gcode_z = printer.gcode_move.gcode_position.z|float %}
{% set toolhead_z = printer.toolhead.position.z|float %}
{% if new_t == 0 %}
{% set t0_act_x = parking_position_t0 %}
{% set t1_act_x = printer.toolhead.position.x|float %}
{% set t0_new_x = new_x %}
{% set t1_new_x = parking_position_t1 %}
{% set t0_distance = t0_new_x - t0_act_x %}
{% set t1_distance = t1_new_x - t1_act_x %}
{% set calc_z_hop = config_z_hop %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="Shifting to T0."
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="T0_ACT_X: {t0_act_x}, T1_ACT_X: {t1_act_x}, T0_NEW_X: {t0_new_x}, T1_NEW_X: {t1_new_x}, T0_DISTANCE: {t0_distance}, T1_DISTANCE: {t1_distance}"
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={calc_z_hop} T={new_t} SYNC=1
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_act_x} F{speed}
{% if t0_distance >= t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_act_x + (t1_new_x - t1_act_x)} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_new_x + xoffset} F{speed}
{% elif t0_distance < t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_new_x + xoffset} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{t1_new_x} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_new_x + xoffset} F{speed}
{% endif %}
{% if svv.idex_applied_offset != new_t %}
SET_GCODE_OFFSET X_ADJUST={xoffset} Y_ADJUST={yoffset} MOVE=0 SPEED={speed}
G1 X{t0_new_x} Y{new_y} F{speed}
SET_GCODE_OFFSET Z_ADJUST={zoffset} MOVE=1 SPEED={z_speed}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE=0
RATOS_ECHO PREFIX="IDEX" MSG="Toolhead offset applied for T0: X={xoffset} Y={yoffset} Z={zoffset}"
{% if printer.configfile.settings.beacon is defined and is_printing_gcode %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={new_t}
{% endif %}
{% endif %}
{% set calc_z_drop = config_z_hop %}
_ZDROP_AFTER_TOOLCHANGE Z_DROP={calc_z_drop} T={new_t} SYNC=1
{% elif new_t == 1 %}
{% set t0_act_x = printer.toolhead.position.x|float %}
{% set t1_act_x = parking_position_t1 %}
{% set t0_new_x = parking_position_t0 %}
{% set t1_new_x = new_x %}
{% set t0_distance = t0_act_x - t0_new_x %}
{% set t1_distance = t1_act_x - t1_new_x %}
{% set calc_z_hop = config_z_hop %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="Shifting to T1."
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="T0_ACT_X: {t0_act_x}, T1_ACT_X: {t1_act_x}, T0_NEW_X: {t0_new_x}, T1_NEW_X: {t1_new_x}, T0_DISTANCE: {t0_distance}, T1_DISTANCE: {t1_distance}"
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={calc_z_hop} T={new_t} SYNC=1
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{t1_act_x} F{speed}
{% if t0_distance >= t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_act_x - t1_distance + xoffset} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_new_x + xoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
{% elif t0_distance < t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_new_x} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{t1_new_x + xoffset} F{speed}
{% endif %}
{% if svv.idex_applied_offset != new_t %}
SET_GCODE_OFFSET X_ADJUST={xoffset} Y_ADJUST={yoffset} MOVE=0 SPEED={speed}
G1 X{t1_new_x} Y{new_y} F{speed}
SET_GCODE_OFFSET Z_ADJUST={zoffset} MOVE=1 SPEED={z_speed}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE=1
RATOS_ECHO PREFIX="IDEX" MSG="Toolhead offset applied for T1: X={xoffset} Y={yoffset} Z={zoffset}"
{% if printer.configfile.settings.beacon is defined and is_printing_gcode %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={new_t}
{% endif %}
{% endif %}
{% set calc_z_drop = config_z_hop %}
_ZDROP_AFTER_TOOLCHANGE Z_DROP={calc_z_drop} T={new_t} SYNC=1
{% endif %}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% endif %}
{% endif %}
SET_VELOCITY_LIMIT ACCEL={max_accel} MINIMUM_CRUISE_RATIO=0.5 SQUARE_CORNER_VELOCITY={square_corner_velocity}
{% endif %}
[gcode_macro _ZHOP_BEFORE_TOOLCHANGE]
gcode =
{% set t = params.T|int %}
{% set sync = params.SYNC|default(0)|int %}
{% set z_hop = params.Z_HOP|default(0.0)|float %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].toolchange_zspeed|default(25)|float %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
{% set combined_zhop = true if printer["gcode_macro RatOS"].toolchange_combined_zhop|default(true)|lower == 'true' else false %}
{% set both_toolheads = true if printer["gcode_macro START_PRINT"].both_toolheads|default(true)|lower == 'true' else false %}
{% set e = printer["gcode_macro RatOS"].toolchange_retraction %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="T: {t}, BOTH_TOOLHEADS: {both_toolheads}, SYNC: {sync}, IS_PRINTING_GCODE: {is_printing_gcode}, Z_HOP: {z_hop}"
G91
M82
G92 E0
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
{% endif %}
{% endif %}
{% if combined_zhop and is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="COMBINED_ZHOP G1 Z+{z_hop} E-{e} F{speed * 60}"
G1 Z+{z_hop} E-{e} F{speed * 60}
{% else %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="ZHOP G1 Z+{z_hop} F{speed * 60}"
G1 Z+{z_hop} F{speed * 60}
{% if is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="RETRACT G1 E-{e} F{feedrate}"
G1 E-{e} F{feedrate}
{% endif %}
{% endif %}
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
{% endif %}
{% endif %}
G90
G92 E0
_SET_EXTRUSION_MODE
[gcode_macro _ZDROP_AFTER_TOOLCHANGE]
gcode =
{% set t = params.T|int %}
{% set sync = params.SYNC|default(0)|int %}
{% set z_drop = params.Z_DROP|default(0.0)|float %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].toolchange_zspeed|default(25)|float %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
{% set combined_zhop = true if printer["gcode_macro RatOS"].toolchange_combined_zhop|default(true)|lower == 'true' else false %}
{% set both_toolheads = true if printer["gcode_macro START_PRINT"].both_toolheads|default(true)|lower == 'true' else false %}
{% set e = printer["gcode_macro RatOS"].toolchange_extrusion %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="T: {t}, BOTH_TOOLHEADS: {both_toolheads}, SYNC: {sync}, IS_PRINTING_GCODE: {is_printing_gcode}, Z_DROP: {z_drop}"
G91
M82
G92 E0
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
{% endif %}
{% endif %}
{% if combined_zhop and is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="COMBINED_ZDROP G1 Z-{z_drop} E{e} F{speed * 60}"
G1 Z-{z_drop} E{e} F{speed * 60}
{% else %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="ZDROP G1 Z-{z_drop} F{speed * 60}"
G1 Z-{z_drop} F{speed * 60}
{% if is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="EXTRUDE G1 E{e} F{feedrate}"
G1 E{e} F{feedrate}
{% endif %}
{% endif %}
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
{% endif %}
{% endif %}
G90
G92 E0
_SET_EXTRUSION_MODE
[gcode_macro _EXTRUDE]
gcode =
{% set t = params.T|int %}
{% set e = printer["gcode_macro RatOS"].toolchange_extrusion %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
DEBUG_ECHO PREFIX="_EXTRUDE" MSG="G1 E{e} F{feedrate * 60}"
G91
M82
G92 E0
G1 E{e} F{feedrate * 60}
G90
G92 E0
_SET_EXTRUSION_MODE
[gcode_macro _DEACTIVATE_TOOLHEAD]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_DEACTIVATE_TOOLHEAD" MSG="TOOLHEAD {toolhead}"
{% if toolhead == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
{% else %}
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
{% endif %}
M106.1 S0
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET=0
_LED_DEACTIVATE_TOOLHEAD TOOLHEAD={toolhead}
[delayed_gcode _INIT_TOOLHEADS]
initial_duration = 0.1
gcode =
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|int %}
{% set svv = printer.save_variables.variables %}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE={default_toolhead}
_IDEX_SINGLE INIT=1
{% if printer.configfile.settings.dual_carriage.safe_distance is defined %}
{% if printer.configfile.settings.dual_carriage.safe_distance|float < 50 %}
{ action_emergency_stop("Dual carriage safe_distance seems to be too low!") }
{% endif %}
{% else %}
{ action_emergency_stop("Dual carriage safe_distance not defined!") }
{% endif %}
[gcode_macro _SET_TOOLHEAD_OFFSET]
gcode =
{% set t = params.T|int %}
{% set move = params.MOVE|default(0)|int %}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="T: {t}, MOVE: {move}"
{% set svv = printer.save_variables.variables %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% if "xyz" not in printer.toolhead.homed_axes %}
{% set move = 0 %}
{% endif %}
{% if svv.idex_applied_offset != t %}
{% if t != printer["gcode_macro RatOS"].default_toolhead|int %}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_GCODE_OFFSET X_ADJUST: {(-svv.idex_xoffset)} Y_ADJUST: {(-svv.idex_yoffset)} MOVE: {move} SPEED: {speed}"
SET_GCODE_OFFSET X_ADJUST={(-svv.idex_xoffset)} Y_ADJUST={(-svv.idex_yoffset)} MOVE={move} SPEED={speed}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_GCODE_OFFSET Z_ADJUST: {(-svv.idex_zoffset)} MOVE: {move} SPEED: {z_speed}"
SET_GCODE_OFFSET Z_ADJUST={(-svv.idex_zoffset)} MOVE={move} SPEED={z_speed}
{% else %}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_ X_ADJUST: {svv.idex_xoffset} Y_ADJUST: {svv.idex_yoffset} MOVE: {move} SPEED: {speed}"
SET_GCODE_OFFSET X_ADJUST={svv.idex_xoffset} Y_ADJUST={svv.idex_yoffset} MOVE={move} SPEED={speed}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_GCODE_OFFSET Z_ADJUST: {svv.idex_zoffset} MOVE: {move} SPEED: {z_speed}"
SET_GCODE_OFFSET Z_ADJUST={svv.idex_zoffset} MOVE={move} SPEED={z_speed}
{% endif %}
RATOS_ECHO PREFIX="IDEX" MSG="Toolhead offset applied for T{t}"
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE={t}
{% if printer.configfile.settings.beacon is defined and is_printing_gcode %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={t}
{% endif %}
{% endif %}
[gcode_macro TOOLSHIFT_CONFIG]
gcode =
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_speed VALUE={params.SPEED|default(300)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_accel VALUE={params.ACCEL|default(5000)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_retraction VALUE={params.RETRACT|default(2.0)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_extrusion VALUE={params.EXTRUDE|default(2.0)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_feedrate VALUE={params.FEEDRATE|default(7200)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zhop VALUE={params.Z_HOP|default(2.0)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zspeed VALUE={params.Z_SPEED|default(25)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_combined_zhop VALUE={true if params.COMBINED_ZHOP|default(0)|int == 1 else false}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_sync_fans VALUE={true if params.SYNC_FANS|default(0)|int == 1 else false}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_prepurging_timer VALUE={params.AUTO_PURGE_TIME|default(0)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_purge VALUE={params.PURGE|default(25)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_standby_temp VALUE={params.STANDBY_TEMP|default(-1)|float}
[gcode_macro CALCULATE_DC_ENDSTOP]
gcode =
{% if printer["dual_carriage"] is defined %}
{% set svv = printer.save_variables.variables %}
{% set idex_xoffset = svv.idex_xoffset|float %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|float %}
{% set stepper_x_position_max = printer.configfile.settings.stepper_x.position_max|float %}
{% set stepper_x_position_endstop = printer.configfile.settings.stepper_x.position_endstop|float %}
{% set dual_carriage_position_max = printer.configfile.settings.dual_carriage.position_max|float %}
{% set dual_carriage_position_endstop = printer.configfile.settings.dual_carriage.position_endstop|float %}
{% set line_1 = "_N_[dual_carriage]" %}
{% set line_2 = "position_max: %.3f" % (dual_carriage_position_max + idex_xoffset) %}
{% set line_3 = "position_endstop: %.3f" % (dual_carriage_position_endstop + idex_xoffset) %}
{% set line_4 = "_N_[gcode_macro RatOS]" %}
{% set line_5 = "variable_bed_margin_x: [%.3f, %.3f]" % (stepper_x_position_endstop|abs, dual_carriage_position_max - stepper_x_position_max + idex_xoffset) %}
{% set line_6 = "_N_[gcode_macro _VAOC]" %}
{% set line_7 = "variable_expected_camera_x_position: %.3f" % idex_xcontrolpoint %}
{% set line_8 = "variable_expected_camera_y_position: %.3f" % idex_ycontrolpoint %}
{% set line_9 = "_N_[gcode_macro T0]" %}
{% set line_10 = "variable_parking_position: %.3f" % (stepper_x_position_endstop + 2) %}
{% set line_11 = "_N_[gcode_macro T1]" %}
{% set line_12 = "variable_parking_position: %.3f" % (dual_carriage_position_endstop + idex_xoffset - 2) %}
CONSOLE_ECHO TITLE="Copy and paste to your printer.cfg" TYPE="info" MSG={'"%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_ "' % (line_1, line_2, line_3, line_4, line_5, line_6, line_7, line_8, line_9, line_10, line_11, line_12)}
{% else %}
CONSOLE_ECHO TITLE="Invalid machine type" TYPE="error" MSG="This macro is only available on IDEX machines."
{% endif %}
[gcode_macro INCREASE_Y_MAX]
gcode =
{% if printer["dual_carriage"] is defined %}
{% set bed_margin_y = printer["gcode_macro RatOS"].bed_margin_y %}
{% set stepper_y_position_max = printer.configfile.settings.stepper_y.position_max|float %}
{% set stepper_y_position_endstop = printer.configfile.settings.stepper_y.position_endstop|float %}
{% set line_1 = "_N_[stepper_y]" %}
{% set line_2 = "position_max: %.3f" % (stepper_y_position_max + 1) %}
{% set line_3 = "_N_[gcode_macro RatOS]" %}
{% set line_4 = "variable_bed_margin_y: [%.3f, %.3f]" % (stepper_y_position_endstop|abs, (bed_margin_y[1] + 1)) %}
CONSOLE_ECHO TITLE="Copy and paste to your printer.cfg" TYPE="info" MSG={'"%s_N_%s_N_%s_N_%s_N_ "' % (line_1, line_2, line_3, line_4)}
{% else %}
CONSOLE_ECHO TITLE="Invalid machine type" TYPE="error" MSG="This macro is only available on IDEX machines."
{% endif %}
[gcode_macro _VAOC]
variable_is_fixed = True
variable_is_started = False
variable_is_started_at_temp = False
variable_additional_safe_distance = 50
variable_safe_z = 60
variable_auto_z_offset_calibration = True
variable_enable_camera_cooling = True
variable_camera_cooling_fan_speed = 0.3
variable_camera_cooling_temperature = 50
variable_toolchange_travel_speed = 300
variable_toolchange_travel_accel = 5000
variable_cache_toolchange_travel_speed = 300
variable_cache_toolchange_travel_accel = 5000
variable_cache_toolchange_zhop = 1.0
variable_t0_toolhead_sensor_enabled = 0
variable_t1_toolhead_sensor_enabled = 0
variable_t0_bowden_sensor_enabled = 0
variable_t1_bowden_sensor_enabled = 0
variable_loaded_skew_profile = ""
gcode =
_ECHO_VAOC_VARS
variable_expected_camera_x_position = 212.5
variable_expected_camera_y_position = 530.5
variable_beacon_contact_start_print_true_zero = True
[gcode_macro _VAOC_START]
description = Called from the front end. If T0_TEMP, T1_TEMP and BED_TEMP parameter are specified, VAOC calibration will start under real conditions at printing temp.
gcode =
{% set t0_temp = params.T0_TEMP|default(0)|int %}
{% set t1_temp = params.T1_TEMP|default(0)|int %}
{% set bed_temp = params.BED_TEMP|default(0)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set loaded_skew_profile = printer["gcode_macro SKEW_PROFILE"].loaded_profile|default("") %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=loaded_skew_profile VALUE='"{loaded_skew_profile}"'
{% if t0_temp > 0 and t1_temp > 0 and bed_temp > 0 %}
{% if not is_fixed %}
_LED_START_PRINTING_ERROR
M84
{ action_raise_error("VAOC calibration at temp works only with a fixed installed VAOC device.") }
{% endif %}
_VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t0_toolhead_sensor_enabled VALUE={1 if printer["filament_switch_sensor toolhead_filament_sensor_t0"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t0 ENABLE=0
{% endif %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t1_toolhead_sensor_enabled VALUE={1 if printer["filament_switch_sensor toolhead_filament_sensor_t1"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t1 ENABLE=0
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t0"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t0_bowden_sensor_enabled VALUE={1 if printer["filament_switch_sensor bowden_filament_sensor_t0"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t0 ENABLE=0
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t1"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t1_bowden_sensor_enabled VALUE={1 if printer["filament_switch_sensor bowden_filament_sensor_t1"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t1 ENABLE=0
{% endif %}
START_PRINT EXTRUDER_TEMP={t0_temp},{t1_temp} EXTRUDER_OTHER_LAYER_TEMP={t0_temp},{t1_temp} BED_TEMP={bed_temp} CHAMBER_TEMP={chamber_temp} INITIAL_TOOL=0 TOTAL_LAYER_COUNT=1 X0={(printable_x_max / 2 - 10)} Y0={(printable_y_max / 2 - 10)} X1={(printable_x_max / 2 + 10)} Y1={(printable_y_max / 2 + 10)} TOTAL_TOOLSHIFTS=1 FIRST_X={printable_x_max / 2} FIRST_Y={printable_y_max / 2} MIN_X={(printable_x_max / 2 - 10)} MAX_X={(printable_x_max / 2 + 10)} USED_TOOLS=0,1
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started_at_temp VALUE=True
{% endif %}
_START_VAOC
[gcode_macro _START_VAOC]
description = Called from _VAOC_START. Do not call it manually.
gcode =
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set additional_safe_distance = printer["gcode_macro _VAOC"].additional_safe_distance|float %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set expected_camera_x_position = printer["gcode_macro _VAOC"].expected_camera_x_position|default(0)|float %}
{% set expected_camera_y_position = printer["gcode_macro _VAOC"].expected_camera_y_position|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(printable_x_max/2)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(printable_y_max/2)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
DEBUG_ECHO PREFIX="VAOC_START" MSG={'"xcontrolpoint: %.6f, ycontrolpoint: %.6f, zcontrolpoint: %.6f, expected_camera_x_position: %.6f, expected_camera_y_position: %.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint, idex_zcontrolpoint, expected_camera_x_position, expected_camera_y_position)}
_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS
_VAOC_ENSURE_SAFE_Z_HEIGHT
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=cache_toolchange_travel_speed VALUE={printer["gcode_macro RatOS"].toolchange_travel_speed|int}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=cache_toolchange_travel_accel VALUE={printer["gcode_macro RatOS"].toolchange_travel_accel|int}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=cache_toolchange_zhop VALUE={printer["gcode_macro RatOS"].toolchange_zhop|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_speed VALUE={printer["gcode_macro _VAOC"].toolchange_travel_speed|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_accel VALUE={printer["gcode_macro _VAOC"].toolchange_travel_accel|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zhop VALUE=0
{% if auto_z_offset %}
{% set additional_safe_distance = 20 %}
{% set idex_xcontrolpoint = idex_xcontrolpoint + z_offset_probe_x_offset %}
{% set idex_ycontrolpoint = idex_ycontrolpoint + z_offset_probe_y_offset %}
{% endif %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% if is_fixed %}
{% set parking_position_t0 = idex_xcontrolpoint - safe_distance - additional_safe_distance %}
{% set parking_position_t1 = idex_xcontrolpoint + safe_distance + additional_safe_distance %}
{% endif %}
RATOS_ECHO PREFIX="VAOC" MSG={'"START X_REFERENCE:%.6f Y_REFERENCE:%.6f Z_REFERENCE:%.6f PARK_T0:%.6f PARK_T1:%.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint, idex_zcontrolpoint, parking_position_t0, parking_position_t1)}
_LED_VAOC_ON
MAYBE_HOME
M400
_LOAD_RATOS_SKEW_PROFILE
{% if printer.toolhead.position.z|float < safe_z %}
G1 Z{safe_z} F{z_speed}
{% endif %}
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
IDEX_SINGLE
{% endif %}
{% if is_fixed %}
_SELECT_TOOL T=0 TOOLSHIFT=false
{% if default_toolhead == 0 %}
G1 X{idex_xcontrolpoint} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{idex_xcontrolpoint + safe_distance + additional_safe_distance} F{speed}
{% else %}
G1 X{idex_xcontrolpoint - safe_distance - additional_safe_distance} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{idex_xcontrolpoint} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
{% else %}
_SELECT_TOOL T={default_toolhead} TOOLSHIFT=false
{% endif %}
G1 X{idex_xcontrolpoint} F{speed}
G1 Y{idex_ycontrolpoint} F{speed}
G1 Z{idex_zcontrolpoint} F{z_speed}
_SELECT_TOOL T={default_toolhead} X={idex_xcontrolpoint} Y={idex_ycontrolpoint} PARK_T0={parking_position_t0} PARK_T1={parking_position_t1}
{% if not auto_z_offset %}
_VAOC_SET_CAMERA_COOLING T={default_toolhead}
{% endif %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started VALUE=True
[gcode_macro _VAOC_END]
gcode =
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_y = printable_y_max / 2 %}
DEBUG_ECHO PREFIX="_VAOC_END" MSG="printable_y_max: {printable_y_max}, center_y: {center_y}, safe_z: {safe_z}"
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
M106.1 S0
{% if printer.toolhead.position.z|float < safe_z %}
G1 Z{safe_z} F{z_speed}
{% endif %}
G1 Y{center_y} F{speed}
_IDEX_SINGLE INIT=1
_LED_VAOC_OFF
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_speed VALUE={printer["gcode_macro _VAOC"].cache_toolchange_travel_speed|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_accel VALUE={printer["gcode_macro _VAOC"].cache_toolchange_travel_accel|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zhop VALUE={printer["gcode_macro _VAOC"].cache_toolchange_zhop|float}
{% if printer["gcode_macro _VAOC"].is_started_at_temp|default(true)|lower == 'true' %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t0 ENABLE={printer["gcode_macro _VAOC"].t0_toolhead_sensor_enabled|int}
{% endif %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t1 ENABLE={printer["gcode_macro _VAOC"].t1_toolhead_sensor_enabled|int}
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t0"] is defined %}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t0 ENABLE={printer["gcode_macro _VAOC"].t0_bowden_sensor_enabled|int}
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t1"] is defined %}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t1 ENABLE={printer["gcode_macro _VAOC"].t1_bowden_sensor_enabled|int}
{% endif %}
{% endif %}
{% set loaded_skew_profile = printer["gcode_macro _VAOC"].loaded_skew_profile|default("") %}
{% if loaded_skew_profile != "" %}
SKEW_PROFILE LOAD={loaded_skew_profile}
{% else %}
SET_SKEW CLEAR=1
{% endif %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started VALUE=False
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started_at_temp VALUE=False
[gcode_macro _VAOC_LOAD_TOOL]
gcode =
{% set t = params.T|default(0)|int %}
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set auto_temp_offset = true if params.AUTO_TEMP_OFFSET|default(false)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set additional_safe_distance = printer["gcode_macro _VAOC"].additional_safe_distance|float %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
{% set toolhead_zoffset = svv.idex_zoffset|default(0)|float %}
{% if auto_z_offset %}
{% set additional_safe_distance = 20 %}
{% set idex_xcontrolpoint = idex_xcontrolpoint + z_offset_probe_x_offset %}
{% set idex_ycontrolpoint = idex_ycontrolpoint + z_offset_probe_y_offset %}
{% endif %}
RATOS_ECHO PREFIX="VAOC" MSG={'"Move T%s to control point: X%.6f Y%.6f Z%.6f IS_FIXED=%s"' % (t, idex_xcontrolpoint, idex_ycontrolpoint, idex_zcontrolpoint, is_fixed)}
{% if not auto_temp_offset and not auto_z_offset %}
_VAOC_SET_CAMERA_COOLING T={t}
{% endif %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% if is_fixed %}
{% set parking_position_t0 = idex_xcontrolpoint - safe_distance - additional_safe_distance %}
{% set parking_position_t1 = idex_xcontrolpoint + safe_distance + additional_safe_distance %}
{% endif %}
{% set current_z = printer.toolhead.position.z|float %}
{% set lowest_toolhead_z = [current_z, current_z - toolhead_zoffset]|min %}
{% if lowest_toolhead_z < safe_z %}
G1 Z{[safe_z, safe_z + toolhead_zoffset]|max} F{z_speed}
{% else %}
G1 Z{idex_zcontrolpoint} F{z_speed}
{% endif %}
_SELECT_TOOL T={t} X={idex_xcontrolpoint} Y={idex_ycontrolpoint} PARK_T0={parking_position_t0} PARK_T1={parking_position_t1}
G1 Z{idex_zcontrolpoint} F{z_speed}
[gcode_macro _VAOC_SET_CAMERA_COOLING]
gcode =
{% set t = params.T|default(0)|int %}
{% set enable_camera_cooling = true if printer["gcode_macro _VAOC"].enable_camera_cooling|default(true)|lower == 'true' else false %}
{% set camera_cooling_temperature = printer["gcode_macro _VAOC"].camera_cooling_temperature|float %}
{% set camera_cooling_fan_speed = printer["gcode_macro _VAOC"].camera_cooling_fan_speed|float %}
{% if printer.heater_bed.temperature >= camera_cooling_temperature and enable_camera_cooling %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={camera_cooling_fan_speed if t == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={camera_cooling_fan_speed if t == 1 else 0}
M106.1 S{camera_cooling_fan_speed}
{% else %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
M106.1 S0
{% endif %}
[gcode_macro _VAOC_SET_TOOL]
gcode =
{% set svv = printer.save_variables.variables %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% if toolhead == printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set x = printer.gcode_move.gcode_position.x|float %}
{% set y = printer.gcode_move.gcode_position.y|float %}
{% set z = printer.gcode_move.gcode_position.z|float %}
SAVE_VARIABLE VARIABLE=idex_xcontrolpoint VALUE={x}
SAVE_VARIABLE VARIABLE=idex_ycontrolpoint VALUE={y}
SAVE_VARIABLE VARIABLE=idex_zcontrolpoint VALUE={z}
RATOS_ECHO PREFIX="VAOC" MSG={'"Control point was set: X%.6f Y%.6f Z%.6f"' % (x, y, z)}
{% else %}
{% set move_diff_x = printer.gcode_move.gcode_position.x|float - svv.idex_xcontrolpoint|float %}
{% set move_diff_y = printer.gcode_move.gcode_position.y|float - svv.idex_ycontrolpoint|float %}
{% set move_diff_z = printer.gcode_move.gcode_position.z|float - svv.idex_zcontrolpoint|float %}
SET_GCODE_OFFSET X_ADJUST={move_diff_x} Y_ADJUST={move_diff_y} Z_ADJUST={move_diff_z} MOVE=0
{% set new_x_offset = svv.idex_xoffset - move_diff_x %}
{% set new_y_offset = svv.idex_yoffset - move_diff_y %}
{% set new_z_offset = svv.idex_zoffset - move_diff_z %}
SAVE_VARIABLE VARIABLE=idex_xoffset VALUE={new_x_offset}
SAVE_VARIABLE VARIABLE=idex_yoffset VALUE={new_y_offset}
SAVE_VARIABLE VARIABLE=idex_zoffset VALUE={new_z_offset}
RATOS_ECHO PREFIX="VAOC" MSG={'"T%s offset was set: X%.6f Y%.6f Z%.6f"' % (toolhead, new_x_offset, new_y_offset, new_z_offset)}
{% endif %}
[gcode_macro _VAOC_MOVE]
gcode =
{% set x = params.X|default(0)|float %}
{% set y = params.Y|default(0)|float %}
{% set z = params.Z|default(0)|float %}
G91
{% if z != 0 %}
RATOS_ECHO PREFIX="VAOC" MSG={'"Move toolhead: G1 Z%.6f F300"' % (z)}
G1 Z{z} F300
{% else %}
{% if x <=2 and y <=2 %}
RATOS_ECHO PREFIX="VAOC" MSG={'"Move toolhead: G1 X%.6f Y%.6f F18000"' % (x, y)}
G1 X{x} Y{y} F18000
{% endif %}
{% endif %}
G90
[gcode_macro _VAOC_CALIBRATE_Z_OFFSET]
gcode =
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set is_started = true if printer["gcode_macro _VAOC"].is_started|default(false)|lower == 'true' else false %}
{% if printer["z_offset_probe"] is defined and is_started %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
_VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT
_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS
_VAOC_SET_TOOL
{% set act_z = printer.toolhead.position.z|float %}
{% if auto_z_offset %}
_START_VAOC AUTO_Z_OFFSET=True
_VAOC_PROBE_Z_OFFSET AUTO_Z_OFFSET=True
_VAOC_LOAD_TOOL T={0 if default_toolhead == 1 else 1} AUTO_Z_OFFSET=True
_VAOC_PROBE_Z_OFFSET AUTO_Z_OFFSET=True
_VAOC_END
{% else %}
_VAOC_LOAD_TOOL T={default_toolhead}
_VAOC_PROBE_Z_OFFSET
_VAOC_LOAD_TOOL T={0 if default_toolhead == 1 else 1}
_VAOC_PROBE_Z_OFFSET
_VAOC_LOAD_TOOL T={default_toolhead}
{% endif %}
G1 Z{act_z} F{z_speed}
_VAOC_ECHO_Z_OFFSET
{% endif %}
[gcode_macro _VAOC_PROBE_Z_OFFSET]
gcode =
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
G1 Z{idex_zcontrolpoint} F{z_speed}
G1 X{idex_xcontrolpoint + z_offset_probe_x_offset} Y{idex_ycontrolpoint + z_offset_probe_y_offset} F{speed}
M400
_VAOC_Z_OFFSET_PROBE_CURRENT_POSITION
G0 Z{idex_zcontrolpoint} F{z_speed}
{% if not auto_z_offset %}
G1 X{idex_xcontrolpoint} Y{idex_ycontrolpoint} F{speed}
{% endif %}
M400
_VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT
[gcode_macro _VAOC_Z_OFFSET_PROBE_CURRENT_POSITION]
gcode =
Z_OFFSET_PROBE PROBE_SPEED=3 LIFT_SPEED=15 SAMPLES=5 SAMPLE_RETRACT_DIST=3 SAMPLES_DROP=1 SAMPLES_TOLERANCE=0.005 SAMPLES_TOLERANCE_RETRIES=10 SAMPLES_RESULT=median
[gcode_macro _VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT]
gcode =
{% if printer["z_offset_probe"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set svv = printer.save_variables.variables %}
{% if toolhead == printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
SAVE_VARIABLE VARIABLE=idex_zoffsetcontrolpoint VALUE={last_z}
RATOS_ECHO PREFIX="VAOC" MSG={'"Z-offset control point set:: %.6f"' % last_z}
{% else %}
{% set z = svv.idex_zoffsetcontrolpoint|float - last_z %}
SET_GCODE_OFFSET Z_ADJUST={svv.idex_zoffset} MOVE=0
G0 Z{svv.idex_zcontrolpoint|float} F{z_speed}
SET_GCODE_OFFSET Z_ADJUST={(0 - z)} MOVE=1
SAVE_VARIABLE VARIABLE=idex_zoffset VALUE={z}
RATOS_ECHO PREFIX="VAOC" MSG={'"T%s offset set: Z %.6f"' % (t, z)}
{% endif %}
{% endif %}
[gcode_macro _VAOC_ECHO_Z_OFFSET]
gcode =
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set svv = printer.save_variables.variables %}
RATOS_ECHO PREFIX="VAOC" MSG={'"T%s toolhead z-offset %.6f"' % (1 if default_toolhead == 0 else 0, svv.idex_zoffset)}
{% if svv.idex_zoffset|abs < 0.02 %}
CONSOLE_ECHO TITLE={'"Perfect toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="You have a perfect toolhead z-offset!" TYPE="success"
{% elif svv.idex_zoffset|abs >= 0.02 and svv.idex_zoffset|abs < 0.05 %}
CONSOLE_ECHO TITLE={'"Good toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset is good!" TYPE="success"
{% elif svv.idex_zoffset|abs >= 0.05 and svv.idex_zoffset|abs < 0.1 %}
CONSOLE_ECHO TITLE={'"High toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset could be better._N_Use minimum 0.3mm first layer height for copy and mirror mode prints." TYPE="warning"
{% elif svv.idex_zoffset|abs >= 0.1 and svv.idex_zoffset|abs < 0.2 %}
CONSOLE_ECHO TITLE={'"Bad toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset is bad._N_Copy and mirror mode prints are not recommended with it." TYPE="warning"
{% elif svv.idex_zoffset|abs >= 0.2 %}
CONSOLE_ECHO TITLE={'"Unacceptable toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset is unacceptable._N_Do not print in copy and mirror mode with it." TYPE="alert"
{% endif %}
RATOS_ECHO PREFIX="VAOC" MSG="Toolhead z-offset calibration done!"
[gcode_macro _VAOC_CALIBRATE_TEMP_OFFSET]
gcode =
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set is_started = true if printer["gcode_macro _VAOC"].is_started|default(false)|lower == 'true' else false %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% if is_fixed and is_started and printer["z_offset_probe"] is defined and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
_VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT
_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS
_VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED
_VAOC_SET_TOOL
{% set act_z = printer.toolhead.position.z|float %}
_VAOC_LOAD_TOOL T={default_toolhead} AUTO_TEMP_OFFSET=True
_VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET
_VAOC_LOAD_TOOL T={0 if default_toolhead == 1 else 1} AUTO_TEMP_OFFSET=True
_VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET
_VAOC_LOAD_TOOL T={default_toolhead}
G1 Z{act_z} F{z_speed}
_VAOC_ECHO_NOZZLE_TEMP_OFFSETS
{% endif %}
[gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET]
variable_reference_z = 0.0
gcode =
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
G1 Z{idex_zcontrolpoint} F{z_speed}
G1 X{idex_xcontrolpoint + z_offset_probe_x_offset} Y{idex_ycontrolpoint + z_offset_probe_y_offset} F{speed}
M400
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=250
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=250
SET_HEATER_TEMPERATURE HEATER={"extruder" if toolhead == 0 else "extruder1"} TARGET=0
G1 X{idex_xcontrolpoint} Y{idex_ycontrolpoint} F{speed}
M400
[gcode_macro _VAOC_PROBE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set svv = printer.save_variables.variables %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(150)|float %}
RATOS_ECHO PREFIX="VAOC" MSG="Waiting for nozzle to reach {temp}°C..."
SET_HEATER_TEMPERATURE HEATER={"extruder" if toolhead == 0 else "extruder1"} TARGET={temp}
TEMPERATURE_WAIT SENSOR={"extruder" if toolhead == 0 else "extruder1"} MINIMUM={temp} MAXIMUM={temp + 2}
RATOS_ECHO PREFIX="VAOC" MSG="Waiting for thermal expansion..."
G4 P240000
RATOS_ECHO PREFIX="VAOC" MSG="Probing with nozzle temperature {temp}°C..."
_VAOC_Z_OFFSET_PROBE_CURRENT_POSITION
G0 Z{idex_zcontrolpoint} F{z_speed}
[gcode_macro _VAOC_STORE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set svv = printer.save_variables.variables %}
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% if temp == 150 %}
SET_GCODE_VARIABLE MACRO=_VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET VARIABLE=reference_z VALUE={last_z}
{% else %}
{% set reference_z = printer["gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET"].reference_z|default(0)|float %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_t{toolhead} VALUE={(last_z - reference_z)}
{% endif %}
[gcode_macro _VAOC_ECHO_NOZZLE_TEMP_OFFSETS]
gcode =
{% set svv = printer.save_variables.variables %}
{% set msg = '"T0 expansion coefficient %.6fmm_N_T1 expansion coefficient %.6fmm"' % (svv.nozzle_expansion_coefficient_t0, svv.nozzle_expansion_coefficient_t1) %}
CONSOLE_ECHO TITLE="Nozzle expansion coefficients:" MSG={msg} TYPE="success"
[gcode_macro _VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS]
gcode =
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set expected_camera_x_position = printer["gcode_macro _VAOC"].expected_camera_x_position|default(0)|float %}
{% set expected_camera_y_position = printer["gcode_macro _VAOC"].expected_camera_y_position|default(0)|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(0)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(0)|float %}
DEBUG_ECHO PREFIX="_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS" MSG={'"xcontrolpoint: %.6f, ycontrolpoint: %.6f, expected_camera_x_position: %.6f, expected_camera_y_position: %.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint, expected_camera_x_position, expected_camera_y_position)}
{% if is_fixed %}
{% if (idex_xcontrolpoint - expected_camera_x_position)|abs > 5 %}
M84
{ action_raise_error("VAOC x-control coordinate is set to %.3f but is expected to be within 5mm of %.3f. Please run '_VAOC_RESET' to roll back to default values." % (idex_xcontrolpoint, expected_camera_x_position)) }
{% endif %}
{% if (idex_ycontrolpoint - expected_camera_y_position)|abs > 5 %}
M84
{ action_raise_error("VAOC y-control coordinate is set to %.3f but is expected to be within 5mm of %.3f. Please run '_VAOC_RESET' to roll back to default values." % (idex_ycontrolpoint, expected_camera_y_position)) }
{% endif %}
{% endif %}
[gcode_macro _VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT]
gcode =
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(0)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(0)|float %}
DEBUG_ECHO PREFIX="_VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT" MSG={'"xcontrolpoint: %.6f, ycontrolpoint: %.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint)}
{% if is_fixed %}
{% if (idex_xcontrolpoint - printer.gcode_move.gcode_position.x|float)|abs > 3 %}
M84
{ action_raise_error("Unexpected y-coordinate detected, VAOC aborted. Expected %.3f but got %.3f." % (idex_xcontrolpoint, printer.gcode_move.gcode_position.x|float)) }
{% endif %}
{% if (idex_ycontrolpoint - printer.gcode_move.gcode_position.y|float)|abs > 3 %}
M84
{ action_raise_error("Unexpected x-coordinate detected, VAOC aborted. Expected %.3f but got %.3f." % (idex_ycontrolpoint, printer.gcode_move.gcode_position.y|float)) }
{% endif %}
{% endif %}
[gcode_macro _VAOC_ENSURE_SAFE_Z_HEIGHT]
gcode =
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
{% set idex_zoffsetcontrolpoint = svv.idex_zoffsetcontrolpoint|default(0)|float %}
DEBUG_ECHO PREFIX="_VAOC_ENSURE_SAFE_Z_HEIGHT" MSG={'"idex_zcontrolpoint: %.6f, idex_zoffsetcontrolpoint: %.6f"' % (idex_zcontrolpoint, idex_zoffsetcontrolpoint)}
{% if safe_z < idex_zcontrolpoint + 2 or safe_z < idex_zoffsetcontrolpoint + 2 %}
{action_raise_error("VAOC safe_z value (%.3f) is too low, it must be higher than %.3f" % (safe_z, [idex_zoffsetcontrolpoint + 2, idex_zcontrolpoint + 2]|max))}
{% endif %}
[gcode_macro _VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED]
gcode =
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"].filament_detected|lower == "true" %}
_LED_START_PRINTING_ERROR
M84
{ action_raise_error("Filament detected in toolhead T0. Unload filament and make sure to clean the nozzle and the melting zone.") }
{% endif %}
{% endif %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"].filament_detected|lower == "true" %}
_LED_START_PRINTING_ERROR
M84
{ action_raise_error("Filament detected in toolhead T1. Unload filament and make sure to clean the nozzle and the melting zone.") }
{% endif %}
{% endif %}
[gcode_macro _VAOC_RESET]
gcode =
{% set expected_camera_x_position = printer["gcode_macro _VAOC"].expected_camera_x_position|default(0)|float %}
{% set expected_camera_y_position = printer["gcode_macro _VAOC"].expected_camera_y_position|default(0)|float %}
{% set svv = printer.save_variables.variables %}
SAVE_VARIABLE VARIABLE=idex_xcontrolpoint VALUE={expected_camera_x_position}
SAVE_VARIABLE VARIABLE=idex_ycontrolpoint VALUE={expected_camera_y_position}
SAVE_VARIABLE VARIABLE=idex_zcontrolpoint VALUE=5.0
SAVE_VARIABLE VARIABLE=idex_zoffsetcontrolpoint VALUE=0.0
SAVE_VARIABLE VARIABLE=idex_xoffset VALUE=0.0
SAVE_VARIABLE VARIABLE=idex_yoffset VALUE=0.0
SAVE_VARIABLE VARIABLE=idex_zoffset VALUE=0.0
RATOS_ECHO PREFIX="VAOC" MSG="VAOC configuration resetted. Please calibrate it before using the printer."
[gcode_macro _ECHO_VAOC_VARS]
description = Echo VAOC variables to the console.
gcode =
{% for var, value in printer["gcode_macro _VAOC"].items() %}
{action_respond_info(var ~ ": " ~ value)}
{% endfor %}
[gcode_macro _VAOC_SWITCH_LED]
gcode =
{% if params.STATE|default(0)|int == 1 %}
_LED_VAOC_ON
{% else %}
_LED_VAOC_OFF
{% endif %}
[gcode_macro Z_PROBE_TEST_T0]
gcode =
{% set debug_previously_enabled = False %}
{% if printer["gcode_macro DEBUG_ECHO"].enabled|lower == 'true' %}
{% set debug_previously_enabled = True %}
{% else %}
ENABLE_DEBUG
{% endif %}
_CLEAR_PRIMARY_TOOLHEAD_RESULT
{% if params.HOT|default(False)|lower == 'true' %}
{% set t0_temp = params.T0_TEMP|default(150)|int %}
{% set bed_temp = params.BED_TEMP|default(115)|int %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating extruders"
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={t0_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating bed"
M190 S{bed_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting HOT z offset probe testing"
{% else %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting COLD z offset probe testing"
{% endif %}
_VAOC_START
{% for i in range(4) %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
{% endfor %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_VAOC_Z_PROBE_TEST_EVALUATE_T0
{% if debug_previously_enabled == False %}
DISABLE_DEBUG
{% endif %}
[gcode_macro Z_PROBE_TEST_T1]
gcode =
{% set debug_previously_enabled = False %}
{% if printer["gcode_macro DEBUG_ECHO"].enabled|lower == 'true' %}
{% set debug_previously_enabled = True %}
{% else %}
ENABLE_DEBUG
{% endif %}
_CLEAR_SECONDARY_TOOLHEAD_RESULT
{% if params.HOT|default(False)|lower == 'true' %}
{% set t1_temp = params.T1_TEMP|default(150)|int %}
{% set bed_temp = params.BED_TEMP|default(115)|int %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating extruders"
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={t1_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating bed"
M190 S{bed_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting HOT z offset probe testing"
{% else %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting COLD z offset probe testing"
{% endif %}
_VAOC_START
{% for i in range(4) %}
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
{% endfor %}
_VAOC_Z_PROBE_LOOP
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_VAOC_Z_PROBE_TEST_EVALUATE_T1
{% if debug_previously_enabled == False %}
DISABLE_DEBUG
{% endif %}
[gcode_macro Z_PROBE_TEST]
gcode =
{% set debug_previously_enabled = False %}
{% if printer["gcode_macro DEBUG_ECHO"].enabled|lower == 'true' %}
{% set debug_previously_enabled = True %}
{% else %}
ENABLE_DEBUG
{% endif %}
_CLEAR_PRIMARY_TOOLHEAD_RESULT
_CLEAR_SECONDARY_TOOLHEAD_RESULT
{% if params.HOT|default(False)|lower == 'true' %}
{% set t0_temp = params.T0_TEMP|default(150)|int %}
{% set t1_temp = params.T1_TEMP|default(150)|int %}
{% set bed_temp = params.BED_TEMP|default(115)|int %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating extruders"
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={t0_temp}
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={t1_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating bed"
M190 S{bed_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting HOT z offset probe testing"
{% else %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting COLD z offset probe testing"
{% endif %}
_VAOC_START
{% for i in range(4) %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
{% endfor %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_VAOC_Z_PROBE_TEST_EVALUATE
{% if debug_previously_enabled == False %}
DISABLE_DEBUG
{% endif %}
[gcode_macro _VAOC_Z_PROBE_LOOP]
gcode =
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_SHAKE_IT
_VAOC_START
[gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE]
gcode =
{% set primary_results = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].results %}
{% set secondary_results = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].results %}
{% set primary_retries = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].retries %}
{% set secondary_retries = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].retries %}
{% if primary_results|sum > 0 and primary_results|count > 0 %}
{% set primary_average = (primary_results|sum/(primary_results|count))|round(6) %}
{% else %}
{% set primary_average = 0 %}
{% endif %}
{% if secondary_results|sum > 0 and secondary_results|count > 0 %}
{% set secondary_average = (secondary_results|sum/(secondary_results|count))|round(6) %}
{% else %}
{% set secondary_average = 0 %}
{% endif %}
{% set primary_min = primary_results|min %}
{% set primary_max = primary_results|max %}
{% set primary_range = primary_max - primary_min %}
{% set secondary_min = secondary_results|min %}
{% set secondary_max = secondary_results|max %}
{% set secondary_range = secondary_max - secondary_min %}
{% if primary_retries > 0 %}
{% set primary_average_retries = primary_retries/(primary_results|count) %}
{% else %}
{% set primary_average_retries = 0 %}
{% endif %}
{% if secondary_retries > 0 %}
{% set secondary_average_retries = secondary_retries/(secondary_results|count) %}
{% else %}
{% set secondary_average_retries = 0 %}
{% endif %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T0 result: {primary_average}, Average Retries: {primary_average_retries}, Range: {primary_range|round(6)}, Min: {primary_min}, Max: {primary_max}"
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T1 result: {secondary_average}, Average Retries: {secondary_average_retries}, Range: {secondary_range|round(6)}, Min: {secondary_min}, Max: {secondary_max}"
{% if primary_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Z probe has poor repeatibility for T0. Retried {primary_retries} time(s)."
{% endif %}
{% if secondary_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Z probe has poor repeatibility for T1. Retried {secondary_retries} time(s)."
{% endif %}
{% if (primary_range - secondary_range) > 0.01 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T0 is drifting significantly more than T1."
{% endif %}
{% if (secondary_range - primary_range) > 0.01 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T1 is drifting significantly more than T0."
{% endif %}
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 result set: {primary_results}, retries: {primary_retries}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 result set: {secondary_results}, retries: {secondary_retries}"
[gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T0]
gcode =
{% set primary_results = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].results %}
{% set primary_retries = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].retries %}
{% if primary_results|sum > 0 and primary_results|count > 0 %}
{% set primary_average = (primary_results|sum/(primary_results|count))|round(6) %}
{% else %}
{% set primary_average = 0 %}
{% endif %}
{% set primary_min = primary_results|min %}
{% set primary_max = primary_results|max %}
{% set primary_range = primary_max - primary_min %}
{% if primary_retries > 0 %}
{% set primary_average_retries = primary_retries/(primary_results|count) %}
{% else %}
{% set primary_average_retries = 0 %}
{% endif %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T0 result: {primary_average}, Average Retries: {primary_average_retries}, Range: {primary_range|round(6)}, Min: {primary_min}, Max: {primary_max}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 result set: {primary_results}, retries: {primary_retries}"
[gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T1]
gcode =
{% set secondary_results = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].results %}
{% set secondary_retries = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].retries %}
{% if secondary_results|sum > 0 and secondary_results|count > 0 %}
{% set secondary_average = (secondary_results|sum/(secondary_results|count))|round(6) %}
{% else %}
{% set secondary_average = 0 %}
{% endif %}
{% set secondary_min = secondary_results|min %}
{% set secondary_max = secondary_results|max %}
{% set secondary_range = secondary_max - secondary_min %}
{% if secondary_retries > 0 %}
{% set secondary_average_retries = secondary_retries/(secondary_results|count) %}
{% else %}
{% set secondary_average_retries = 0 %}
{% endif %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T1 result: {secondary_average}, Average Retries: {secondary_average_retries}, Range: {secondary_range|round(6)}, Min: {secondary_min}, Max: {secondary_max}"
{% if secondary_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Z probe has poor repeatibility for T1. Retried {secondary_retries} time(s)."
{% endif %}
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 result set: {secondary_results}, retries: {secondary_retries}"
[gcode_macro _SHAKE_IT]
gcode =
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
_Z_HOP
{% for i in range(3) %}
{% for i in range(5) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 25} Y{printable_y_max/2 + 25}
G0 X{printable_x_max/2 - 25} Y{printable_y_max/2 - 25}
G0 X{printable_x_max/2 + 25} Y{printable_y_max/2 - 25}
G0 X{printable_x_max/2 - 25} Y{printable_y_max/2 + 25}
{% endfor %}
{% for i in range(10) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 1} Y{printable_y_max/2 + 1}
G0 X{printable_x_max/2 - 1} Y{printable_y_max/2 - 1}
G0 X{printable_x_max/2 + 1} Y{printable_y_max/2 - 1}
G0 X{printable_x_max/2 - 1} Y{printable_y_max/2 + 1}
{% endfor %}
{% for i in range(2) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 50} Y{printable_y_max/2 + 50}
G0 X{printable_x_max/2 - 50} Y{printable_y_max/2 - 50}
G0 X{printable_x_max/2 + 50} Y{printable_y_max/2 - 50}
G0 X{printable_x_max/2 - 50} Y{printable_y_max/2 + 50}
{% endfor %}
{% for i in range(5) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 25} Y{printable_y_max/2}
G0 X{printable_x_max/2 - 25} Y{printable_y_max/2}
{% endfor %}
{% for i in range(5) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2} Y{printable_y_max/2 + 25}
G0 X{printable_x_max/2} Y{printable_y_max/2 - 25}
{% endfor %}
{% for i in range(10) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 1} Y{printable_y_max/2}
G0 X{printable_x_max/2 - 1} Y{printable_y_max/2}
{% endfor %}
{% for i in range(10) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2} Y{printable_y_max/2 + 1}
G0 X{printable_x_max/2} Y{printable_y_max/2 - 1}
{% endfor %}
{% endfor %}
[gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT]
variable_results = []
variable_retries = 0
gcode =
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% set last_retries = printer["z_offset_probe"].last_retries|default(0)|float %}
{% set new_results = results + [last_z] %}
{% set new_retries = retries + last_retries %}
{% if last_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T0 probe repeatibility issues detected! Retried {last_retries} time(s)."
{% endif %}
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=results VALUE="{new_results}"
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=retries VALUE="{new_retries}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 result set updated: {new_results}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 retries updated: {new_retries}"
[gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT]
variable_results = []
variable_retries = 0
gcode =
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% set last_retries = printer["z_offset_probe"].last_retries|default(0)|float %}
{% set new_results = results + [last_z] %}
{% set new_retries = retries + last_retries %}
{% if last_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T1 probe repeatibility issues detected! Retried {last_retries} time(s)."
{% endif %}
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=results VALUE="{new_results}"
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=retries VALUE="{new_retries}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 result set updated: {new_results}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 retries updated: {new_retries}"
[gcode_macro _CLEAR_PRIMARY_TOOLHEAD_RESULT]
gcode =
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T0 result set"
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=results VALUE="[]"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T0 retries"
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=retries VALUE=0
[gcode_macro _CLEAR_SECONDARY_TOOLHEAD_RESULT]
gcode =
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T1 result set"
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=results VALUE="[]"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T1 retries"
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=retries VALUE=0
[gcode_macro _VAOC_TEST_Z_OFFSET]
gcode =
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
G1 Z{idex_zcontrolpoint} F{z_speed}
G1 X{idex_xcontrolpoint + z_offset_probe_x_offset} Y{idex_ycontrolpoint + z_offset_probe_y_offset} F{speed}
_VAOC_Z_OFFSET_PROBE_CURRENT_POSITION
G0 Z{idex_zcontrolpoint} F{z_speed}
[delayed_gcode _IDEX_INIT]
initial_duration = 0.1
gcode =
VERIFY_HYBRID_INVERTED
[gcode_macro Z_TILT_ADJUST]
rename_existing = Z_TILT_ADJUST_ORIG
gcode =
{% set beacon_contact_z_tilt_adjust_samples = printer["gcode_macro RatOS"].beacon_contact_z_tilt_adjust_samples|default(2)|int %}
{% set beacon_contact_z_tilt_adjust = true if printer["gcode_macro RatOS"].beacon_contact_z_tilt_adjust|default(true)|lower == 'true' else false %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
_IDEX_SINGLE
_SELECT_TOOL T={printer["gcode_macro RatOS"].default_toolhead|default(0)|int} TOOLSHIFT=false
{% endif %}
{% if printer["gcode_macro RatOS"].z_probe == 'stowable' %}
DEPLOY_PROBE
{% endif %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_z_tilt_adjust %}
Z_TILT_ADJUST_ORIG PROBE_METHOD=contact SAMPLES={beacon_contact_z_tilt_adjust_samples}
{% else %}
Z_TILT_ADJUST_ORIG
{% endif %}
{% if printer["gcode_macro RatOS"].z_probe == 'stowable' %}
STOW_PROBE
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if idex_mode == "copy" %}
_IDEX_COPY
{% elif idex_mode == "mirror" %}
_IDEX_MIRROR
{% endif %}
{% endif %}
[stepper_x]
position_max = 500
position_endstop = -59.8
position_min = -59.8
step_pin = PF13
dir_pin = x_dir_pin
enable_pin = !PF14
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
homing_speed = 50
endstop_pin = toolboard_t0:PB6
[stepper_y]
position_max = 533.65
position_min = -14.35
position_endstop = -14.35
step_pin = PG0
dir_pin = !y_dir_pin
enable_pin = !PF15
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
homing_speed = 50
endstop_pin = PG9
[stepper_z]
position_max = 500
position_min = -7
step_pin = PC13
dir_pin = !z0_dir_pin
enable_pin = !PF1
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 4
homing_speed = 10
endstop_pin = probe:z_virtual_endstop
[bed_mesh]
horizontal_move_z = 2
mesh_min = 20,30
mesh_max = 470,462.5
probe_count = 40,40
fade_start = 1.0
fade_end = 10.0
mesh_pps = 2,2
algorithm = bicubic
bicubic_tension = .2
speed = 600
[z_tilt]
z_positions =
0,0
250,500
500,0
points =
20,10
250,440
480,10
horizontal_move_z = 20
retries = 10
retry_tolerance = 0.02
speed = 600
[extruder]
rotation_distance = 4.63
full_steps_per_rotation = 200
filament_diameter = 1.750
max_extrude_only_velocity = 60
max_extrude_only_distance = 200
nozzle_diameter = 0.4
heater_pin = toolboard_t0:PB13
sensor_type = PT1000
pullup_resistor = 2200
sensor_pin = toolboard_t0:PA3
min_extrude_temp = 170
min_temp = 0
max_temp = 350
pressure_advance = 0.03
step_pin = toolboard_t0:PD0
dir_pin = toolboard_t0:e_dir_pin
enable_pin = !toolboard_t0:PD2
microsteps = 64
control = pid
pid_kp = 35.089
pid_ki = 7.089
pid_kd = 43.423
[firmware_retraction]
retract_speed = 60
unretract_extra_length = 0
unretract_speed = 60
retract_length = 0.5
[extruder1]
rotation_distance = 4.63
full_steps_per_rotation = 200
filament_diameter = 1.750
max_extrude_only_velocity = 60
max_extrude_only_distance = 200
nozzle_diameter = 0.4
heater_pin = toolboard_t1:PB13
sensor_type = PT1000
pullup_resistor = 2200
sensor_pin = toolboard_t1:PA3
min_extrude_temp = 170
min_temp = 0
max_temp = 350
pressure_advance = 0.03
step_pin = toolboard_t1:PD0
dir_pin = toolboard_t1:e_dir_pin
enable_pin = !toolboard_t1:PD2
microsteps = 64
control = pid
pid_kp = 38.078
pid_ki = 12.088
pid_kd = 29.986
[resonance_tester]
accel_chip_x = adxl345 toolboard_t0
accel_chip_y = adxl345 toolboard_t0
probe_points =
250,250,20
[tmc2209 stepper_x]
stealthchop_threshold = 0
interpolate = False
uart_pin = PC4
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 dual_carriage]
stealthchop_threshold = 0
interpolate = False
uart_pin = PF2
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 stepper_y]
stealthchop_threshold = 0
interpolate = False
uart_pin = PD11
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 stepper_y1]
stealthchop_threshold = 0
interpolate = False
uart_pin = PC7
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[stepper_y1]
step_pin = PG4
dir_pin = y1_dir_pin
enable_pin = !PA0
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
[tmc2209 stepper_z]
stealthchop_threshold = 0
interpolate = False
uart_pin = PE4
run_current = 1.6
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 stepper_z1]
stealthchop_threshold = 0
interpolate = False
uart_pin = PE1
run_current = 1.6
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[stepper_z1]
step_pin = PE2
dir_pin = !z1_dir_pin
enable_pin = !PD4
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 4
[tmc2209 stepper_z2]
stealthchop_threshold = 0
interpolate = False
uart_pin = PD3
run_current = 1.6
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[stepper_z2]
step_pin = PE6
dir_pin = !z2_dir_pin
enable_pin = !PE0
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 4
[tmc2209 extruder]
stealthchop_threshold = 0
interpolate = False
uart_pin = toolboard_t0:PA15
run_current = 0.707
driver_tbl = 0
driver_toff = 4
driver_hend = 6
driver_hstrt = 7
sense_resistor = 0.11
[tmc2209 extruder1]
stealthchop_threshold = 0
interpolate = False
uart_pin = toolboard_t1:PA15
run_current = 0.707
driver_tbl = 0
driver_toff = 4
driver_hend = 6
driver_hstrt = 7
sense_resistor = 0.11
[beacon]
serial = /dev/beacon
x_offset = 0
y_offset = 22.5
mesh_main_direction = x
mesh_runs = 1
speed = 15.
lift_speed = 80.
contact_max_hotend_temperature = 275
[delayed_gcode _BEACON_INIT]
initial_duration = 1
gcode =
_BEACON_SET_NOZZLE_TEMP_OFFSET RESET=True
{% set svv = printer.save_variables.variables %}
{% set nozzle_expansion_coefficient_multiplier = svv.nozzle_expansion_coefficient_multiplier|default(0)|float %}
{% if nozzle_expansion_coefficient_multiplier == 0 %}
{% if printer["gcode_macro RatOS"].beacon_contact_expansion_multiplier is not defined %}
{% set nozzle_expansion_coefficient_multiplier = 1.0 %}
{% else %}
{% set nozzle_expansion_coefficient_multiplier = printer["gcode_macro RatOS"].beacon_contact_expansion_multiplier|default(1.0)|float %}
{% endif %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_multiplier VALUE={nozzle_expansion_coefficient_multiplier}
{% endif %}
{% if printer["gcode_macro RatOS"].beacon_contact_expansion_multiplier is defined %}
CONSOLE_ECHO TITLE="Deprecated gcode variable" TYPE="warning" MSG={'"Please remove the variable beacon_contact_expansion_multiplier from your config file."'}
{% endif %}
[gcode_macro BEACON_RATOS_CALIBRATION]
gcode =
RATOS_ECHO MSG="Did you mean BEACON_RATOS_CALIBRATE?"
[gcode_macro BEACON_RATOS_CALIBRATE]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
BEACON_INITIAL_CALIBRATION _AUTOMATED=True
{% if beacon_contact_start_print_true_zero %}
BEACON_POKE_TEST _AUTOMATED=True
_BEACON_CHECK_POKE
{% if printer["dual_carriage"] is not defined %}
BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET _AUTOMATED=True
{% endif %}
{% endif %}
{% if chamber_temp > 0 %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp}
{% endif %}
BEACON_FINAL_CALIBRATION _AUTOMATED=True BED_TEMP={bed_temp} CHAMBER_TEMP={chamber_temp}
{% if beacon_contact_start_print_true_zero %}
BEACON_MEASURE_GANTRY_TWIST
_BEACON_MAYBE_SCAN_COMPENSATION
{% endif %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
{% if chamber_temp > 0 %}
_CHAMBER_HEATER_OFF
{% endif %}
{% if beacon_contact_start_print_true_zero %}
{% if printer["dual_carriage"] is not defined %}
_BEACON_ECHO_NOZZLE_TEMP_OFFSETS
{% endif %}
_BEACON_ECHO_POKE
{% endif %}
RATOS_ECHO MSG="Beacon calibration finished!"
_LED_BEACON_CALIBRATION_END
RATOS_ECHO MSG="Saving config and restarting klipper..."
SAVE_CONFIG
[gcode_macro BEACON_INITIAL_CALIBRATION]
gcode =
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
MAYBE_HOME X=True Y=True
_LED_BEACON_CALIBRATION_START
G90
_MOVE_TO_SAFE_Z_HOME
BEACON_AUTO_CALIBRATE
_Z_HOP
RATOS_ECHO MSG="Initial beacon contact calibration finished!"
{% if not automated %}
_CONSOLE_SAVE_CONFIG
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro BEACON_FINAL_CALIBRATION]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set bed_heat_soak_time = printer["gcode_macro RatOS"].bed_heat_soak_time|default(0)|int %}
{% set z_hop_speed = printer.configfile.config.ratos_homing.z_hop_speed|float * 60 %}
_BEACON_HOME_AND_ABL
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp}
{% endif %}
_LED_BEACON_CALIBRATION_START
G90
G0 Z2 F{z_hop_speed}
RATOS_ECHO MSG="Waiting for calibration temperature..."
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=150
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp} MAXIMUM={(bed_temp + 5)}
TEMPERATURE_WAIT SENSOR={'extruder' if default_toolhead == 0 else 'extruder1'} MINIMUM=150 MAXIMUM=155
{% if bed_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking bed for {bed_heat_soak_time} seconds..."
G4 P{(bed_heat_soak_time * 1000)}
{% endif %}
_Z_HOP
BEACON_AUTO_CALIBRATE
{% if not automated %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
{% endif %}
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_OFF
{% endif %}
_Z_HOP
RATOS_ECHO MSG="Final beacon contact calibration finished!"
{% if not automated %}
_CONSOLE_SAVE_CONFIG
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro BEACON_POKE_TEST]
variable_poke_result_1 = -1
variable_poke_result_2 = -1
variable_poke_result_3 = -1
variable_poke_result_4 = -1
variable_poke_result_5 = -1
gcode =
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set z_hop_speed = printer.configfile.config.ratos_homing.z_hop_speed|float * 60 %}
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_1 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_2 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_3 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_4 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_5 VALUE=-1
_BEACON_HOME_AND_ABL
_LED_BEACON_CALIBRATION_START
G0 Z5 F{z_hop_speed}
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=1
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=2
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=3
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=4
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=5
_Z_HOP
RATOS_ECHO MSG="Beacon poke test finished!"
{% if not automated %}
_BEACON_ECHO_POKE
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro _BEACON_PROBE_POKE]
gcode =
{% set poke_bottom = printer["gcode_macro RatOS"].beacon_contact_poke_bottom_limit|default(-1)|float %}
BEACON_POKE speed=3 top=5 bottom={poke_bottom}
BEACON_QUERY
[gcode_macro _BEACON_STORE_POKE]
gcode =
{% set i = params.I|default(1)|int %}
{% set last_z = printer.beacon.last_poke_result|default(0)|float %}
{% if printer.beacon.last_poke_result|lower != "none" %}
{% if printer.beacon.last_poke_result.error == 0 %}
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE={"poke_result_%s" % i} VALUE={printer.beacon.last_poke_result.latency}
{% endif %}
{% endif %}
[gcode_macro _BEACON_CHECK_POKE]
gcode =
{% set p1 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_1|int %}
{% set p2 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_2|int %}
{% set p3 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_3|int %}
{% set p4 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_4|int %}
{% set p5 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_5|int %}
{% if p1 == -1 or p2 == -1 or p3 == -1 or p4 == -1 or p5 == -1 %}
_LED_BEACON_CALIBRATION_ERROR
{ action_raise_error("Beacon poke test error!") }
{% endif %}
{% set avg = (p1 + p2 + p3 + p4 + p5) / 5 %}
{% if avg > 6 %}
_LED_BEACON_CALIBRATION_ERROR
{ action_raise_error("Beacon poke test failed!") }
{% endif %}
[gcode_macro _BEACON_ECHO_POKE]
gcode =
{% set p1 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_1|int %}
{% set p2 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_2|int %}
{% set p3 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_3|int %}
{% set p4 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_4|int %}
{% set p5 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_5|int %}
{% set avg = (p1 + p2 + p3 + p4 + p5) / 5 %}
{% if avg <= 1 %}
{% set type = "success" %}
{% set note = "Extremely low noise, rarely achieved" %}
{% elif avg > 1 and avg <= 4 %}
{% set type = "info" %}
{% set note = "Excellent performance for a typical printer" %}
{% elif avg > 4 and avg <= 8 %}
{% set type = "warning" %}
{% set note = "Acceptable performance, machine may have considerable cyclic axis noise" %}
{% elif avg > 8 and avg <= 11 %}
{% set type = "alert" %}
{% set note = "Not ideal, may want to verify proper mounting or use thinner stackups" %}
{% elif avg > 11 %}
{% set type = "alert" %}
{% set note = "Reason for concern, present setup may be risky to continue with" %}
{% endif %}
CONSOLE_ECHO TITLE="Beacon poke test result:" TYPE={type} MSG={'"Average latency: %.2f_N_%s"' % (avg, note)}
[gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET]
variable_reference_z = 0.0
gcode =
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set test_margin = 30 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set poke_bottom = printer["gcode_macro RatOS"].beacon_contact_poke_bottom_limit|default(-1)|float %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% if beacon_contact_start_print_true_zero %}
_BEACON_HOME_AND_ABL
_LED_BEACON_CALIBRATION_START
RATOS_ECHO PREFIX="BEACON" MSG="Nozzle temperature offset calibration..."
{% for i in range(10) %}
beacon_poke speed=3 top=5 bottom={poke_bottom}
{% endfor %}
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=250
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=250
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
SET_HEATER_TEMPERATURE HEATER={"extruder" if default_toolhead == 0 else "extruder1"} TARGET=0
{% if not automated %}
_BEACON_ECHO_NOZZLE_TEMP_OFFSETS
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
{% endif %}
[gcode_macro _BEACON_PROBE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set hotend_heat_soak_time = printer["gcode_macro RatOS"].hotend_heat_soak_time|default(0)|int %}
{% set svv = printer.save_variables.variables %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(150)|float %}
RATOS_ECHO PREFIX="BEACON" MSG="Waiting for nozzle to reach {temp}°C..."
SET_HEATER_TEMPERATURE HEATER={"extruder" if default_toolhead == 0 else "extruder1"} TARGET={temp}
TEMPERATURE_WAIT SENSOR={"extruder" if default_toolhead == 0 else "extruder1"} MINIMUM={temp} MAXIMUM={temp + 2}
{% if hotend_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking hotend for {hotend_heat_soak_time} seconds..."
G4 P{(hotend_heat_soak_time * 1000)}
{% endif %}
RATOS_ECHO PREFIX="BEACON" MSG="Probing with nozzle temperature {temp}°C..."
PROBE PROBE_METHOD=contact PROBE_SPEED=3 LIFT_SPEED=15 SAMPLES=5 SAMPLE_RETRACT_DIST=3 SAMPLES_TOLERANCE=0.005 SAMPLES_TOLERANCE_RETRIES=10 SAMPLES_RESULT=median
BEACON_QUERY
G0 Z5 F{z_speed}
[gcode_macro _BEACON_STORE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set svv = printer.save_variables.variables %}
{% set last_z = printer.beacon.last_z_result|default(0)|float %}
{% if temp == 150 %}
SET_GCODE_VARIABLE MACRO=BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET VARIABLE=reference_z VALUE={last_z}
{% else %}
{% set reference_z = printer["gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET"].reference_z|default(0)|float %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_t{default_toolhead} VALUE={(last_z - reference_z)}
{% endif %}
[gcode_macro _BEACON_ECHO_NOZZLE_TEMP_OFFSETS]
gcode =
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set svv = printer.save_variables.variables %}
{% if default_toolhead == 0 %}
CONSOLE_ECHO TYPE="info" MSG={'"T0 expansion coefficient %.6f"' % svv.nozzle_expansion_coefficient_t0}
{% else %}
CONSOLE_ECHO TYPE="info" MSG={'"T1 expansion coefficient %.6f"' % svv.nozzle_expansion_coefficient_t1}
{% endif %}
[gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET]
variable_runtime_temp = 0
gcode =
{% set toolhead = params.TOOLHEAD|default(0)|int %}
{% set reset = true if params.RESET|default(false)|lower == 'true' else false %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set beacon_contact_true_zero_temp = printer["gcode_macro RatOS"].beacon_contact_true_zero_temp|default(150)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% set svv = printer.save_variables.variables %}
{% if reset %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_applied_offset VALUE=0
{% else %}
{% if beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
{% set nozzle_expansion_coefficient_t0 = svv.nozzle_expansion_coefficient_t0|default(0)|float %}
{% if printer["dual_carriage"] is defined %}
{% set nozzle_expansion_coefficient_t1 = svv.nozzle_expansion_coefficient_t1|default(0)|float %}
{% endif %}
{% set nozzle_expansion_coefficient_multiplier = svv.nozzle_expansion_coefficient_multiplier|default(1.0)|float %}
{% set applied_offset = svv.nozzle_expansion_applied_offset|default(0)|float %}
{% set temp = printer['extruder' if toolhead == 0 else 'extruder1'].target|float %}
{% set temp_offset = temp - beacon_contact_true_zero_temp %}
{% set expansion_coefficient = nozzle_expansion_coefficient_t0 if toolhead == 0 else nozzle_expansion_coefficient_t1 %}
{% set expansion_offset = nozzle_expansion_coefficient_multiplier * (temp_offset * (expansion_coefficient / 100)) %}
{% set new_offset = ((-applied_offset) + expansion_offset) %}
SET_GCODE_OFFSET Z_ADJUST={new_offset} MOVE=1 SPEED={z_speed}
SAVE_VARIABLE VARIABLE=nozzle_expansion_applied_offset VALUE={expansion_offset}
SET_GCODE_VARIABLE MACRO=_BEACON_SET_NOZZLE_TEMP_OFFSET VARIABLE=runtime_temp VALUE={temp}
RATOS_ECHO PREFIX="BEACON" MSG={'"Nozzle expansion offset of %.6fmm applied to T%s"' % (expansion_offset, toolhead)}
DEBUG_ECHO PREFIX="_BEACON_SET_NOZZLE_TEMP_OFFSET" MSG="multiplier: {nozzle_expansion_coefficient_multiplier}, coefficient: {expansion_coefficient}, temp_offset: {temp_offset}, expansion_offset: {expansion_offset}, applied_offset: {applied_offset}, new_offset: {new_offset}"
{% endif %}
{% endif %}
[gcode_macro BEACON_MEASURE_GANTRY_TWIST]
variable_needs_compensation = False
variable_reference_z = 0.0
variable_front = 0.0
variable_front_left = 0.0
variable_front_right = 0.0
variable_back = 0.0
variable_back_left = 0.0
variable_back_right = 0.0
variable_right = 0.0
variable_left = 0.0
variable_margin_x = 40
variable_margin_y = 40
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set poke_bottom = printer["gcode_macro RatOS"].beacon_contact_poke_bottom_limit|default(-1)|float %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% if beacon_contact_start_print_true_zero %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=False
_BEACON_HOME_AND_ABL
_LED_BEACON_CALIBRATION_START
RATOS_ECHO PREFIX="BEACON" MSG="Measure gantry twist..."
{% for i in range(10) %}
beacon_poke speed=3 top=5 bottom={poke_bottom}
{% endfor %}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="center"
G0 X{margin_x} Y{margin_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="front_left"
G0 X{safe_home_x} Y{margin_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="front"
G0 X{(printable_x_max - margin_x)} Y{margin_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="front_right"
G0 X{(printable_x_max - margin_x)} Y{safe_home_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="right"
G0 X{(printable_x_max - margin_x)} Y{(printable_y_max - margin_y)} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="back_right"
G0 X{safe_home_x} Y{(printable_y_max - margin_y)} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="back"
G0 X{margin_x} Y{(printable_y_max - margin_y)} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="back_left"
G0 X{margin_x} Y{safe_home_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="left"
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
_BEACON_ECHO_GANTRY_TWIST
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro _BEACON_PROBE_GANTRY_TWIST]
gcode =
RATOS_ECHO PREFIX="BEACON" MSG="Probing..."
BEACON_OFFSET_COMPARE
BEACON_QUERY
[gcode_macro _BEACON_STORE_GANTRY_TWIST]
gcode =
{% set location = params.LOCATION|lower %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set last_z = printer.beacon.last_offset_result["delta"]|default(0)|float %}
{% if location == "center" %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=reference_z VALUE={last_z}
{% else %}
{% set reference_z = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].reference_z|default(0)|float %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE={location} VALUE={(last_z - reference_z)}
{% endif %}
[gcode_macro _BEACON_ECHO_GANTRY_TWIST]
gcode =
{% set reference_z = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].reference_z|default(0)|float * 1000 %}
{% set front_left = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].front_left|default(0)|float * 1000 %}
{% set front = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].front|default(0)|float * 1000 %}
{% set front_right = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].front_right|default(0)|float * 1000 %}
{% set right = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].right|default(0)|float * 1000 %}
{% set back_right = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].back_right|default(0)|float * 1000 %}
{% set back = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].back|default(0)|float * 1000 %}
{% set back_left = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].back_left|default(0)|float * 1000 %}
{% set left = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].left|default(0)|float * 1000 %}
{% set line_1 = "Front left: %.6fμm" % (front_left) %}
{% set line_2 = "Front center: %.6fμm" % (front) %}
{% set line_3 = "Front right: %.6fμm" % (front_right) %}
{% set line_4 = "Left center: %.6fμm" % (left) %}
{% set line_5 = "Right center: %.6fμm" % (right) %}
{% set line_6 = "Back left: %.6fμm" % (back_left) %}
{% set line_7 = "Back center: %.6fμm" % (back) %}
{% set line_8 = "Back right: %.6fμm" % (back_right) %}
{% set max_value = [(front_left|abs), (front|abs), (front_right|abs), (left|abs), (right|abs), (back_left|abs), (back|abs), (back_right|abs)]|max %}
{% if max_value <= 50 %}
{% set type = "success" %}
{% set recommendation = "Very low gantry twist: %.6fμm._N_No beacon scan compensation needed." % max_value %}
{% elif max_value > 50 and max_value <= 100 %}
{% set type = "info" %}
{% set recommendation = "Low gantry twist: %.6fμm._N_You may experience first layer inconsistensies, consider beacon scan compensation." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% elif max_value > 100 and max_value <= 150 %}
{% set type = "warning" %}
{% set recommendation = "High gantry twist: %.6fμm._N_High chance of first layer problems, beacon scan compensation is highly encouraged." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% elif max_value > 150 and max_value <= 200 %}
{% set type = "alert" %}
{% set recommendation = "Very High gantry twist: %.6fμm._N_You will encounter first layer problems on large prints unless you activate beacon scan compensation." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% elif max_value > 200 %}
{% set type = "alert" %}
{% set recommendation = "Extremely high gantry twist: %.6fμm._N_You have significant scan/contact inconsistency which is indicative of mechanical problems, please investigate before resorting to software compensation." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% endif %}
CONSOLE_ECHO TITLE="Gantry twist relative to the center" TYPE={type} MSG={'"_N_%s_N__N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s"' % (recommendation, line_1, line_2, line_3, line_4, line_5, line_6, line_7, line_8)}
[gcode_macro BEACON_CREATE_SCAN_COMPENSATION_MESH]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set profile = params.PROFILE|default("Contact")|string %}
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_scan_compensation_enable = true if printer["gcode_macro RatOS"].beacon_scan_compensation_enable|default(false)|lower == 'true' else false %}
{% set probe_count = printer["gcode_macro RatOS"].beacon_scan_compensation_probe_count %}
{% set bed_heat_soak_time = printer["gcode_macro RatOS"].bed_heat_soak_time|default(0)|int %}
{% if not beacon_scan_compensation_enable %}
RATOS_ECHO MSG="Beacon scan compensation is disabled!"
{% else %}
MAYBE_HOME
_MOVE_TO_SAFE_Z_HOME
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
_LED_BEACON_CALIBRATION_START
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp}
{% endif %}
{% if not automated %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=150
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp}
RATOS_ECHO MSG="Please wait..."
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp} MAXIMUM={(bed_temp + 5)}
TEMPERATURE_WAIT SENSOR={'extruder' if default_toolhead == 0 else 'extruder1'} MINIMUM=150 MAXIMUM=155
{% endif %}
{% if not automated %}
{% if bed_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking bed for {bed_heat_soak_time} seconds..."
G4 P{(bed_heat_soak_time * 1000)}
{% endif %}
{% endif %}
{% if printer.z_tilt is defined %}
RATOS_ECHO MSG="Adjusting Z tilt..."
Z_TILT_ADJUST
RATOS_ECHO MSG="Rehoming Z after Z tilt adjustment..."
{% endif %}
{% if printer.quad_gantry_level is defined %}
RATOS_ECHO MSG="Running quad gantry leveling..."
QUAD_GANTRY_LEVEL
RATOS_ECHO MSG="Rehoming Z after quad gantry leveling..."
{% endif %}
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES=2 SAMPLES_DROP=1 SAMPLES_TOLERANCE_RETRIES=10 PROBE_COUNT={probe_count[0]},{probe_count[1]} PROFILE={profile}
{% if not automated %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
{% endif %}
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_OFF
{% endif %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
RATOS_ECHO MSG="Beacon scan compensation mesh created!"
{% if not automated %}
RATOS_ECHO MSG="Saving config and restarting klipper..."
SAVE_CONFIG
{% endif %}
{% endif %}
[gcode_macro _BEACON_APPLY_SCAN_COMPENSATION]
gcode =
{% set beacon_scan_compensation_profile = printer["gcode_macro RatOS"].beacon_scan_compensation_profile %}
{% set beacon_scan_compensation_enable = true if printer["gcode_macro RatOS"].beacon_scan_compensation_enable|default(false)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_BEACON_APPLY_SCAN_COMPENSATION" MSG="beacon_scan_compensation_profile {beacon_scan_compensation_profile}, beacon_scan_compensation_enable {beacon_scan_compensation_enable}"
{% if beacon_scan_compensation_enable %}
BEACON_APPLY_SCAN_COMPENSATION PROFILE={beacon_scan_compensation_profile}
{% endif %}
[gcode_macro _BEACON_MAYBE_SCAN_COMPENSATION]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set needs_scan_compensation = true if printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].needs_compensation|default(false)|lower == 'true' else false %}
{% if needs_scan_compensation %}
BEACON_CREATE_SCAN_COMPENSATION_MESH _AUTOMATED=True BED_TEMP={bed_temp} CHAMBER_TEMP={chamber_temp}
{% endif %}
[gcode_macro _BEACON_HOME_AND_ABL]
gcode =
MAYBE_HOME X=True Y=True
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
{% set needs_rehoming = False %}
{% if printer.z_tilt is defined and not printer.z_tilt.applied %}
RATOS_ECHO MSG="Adjusting Z tilt..."
Z_TILT_ADJUST
RATOS_ECHO MSG="Rehoming Z after Z tilt adjustment..."
{% set needs_rehoming = True %}
{% endif %}
{% if printer.quad_gantry_level is defined and not printer.quad_gantry_level.applied %}
RATOS_ECHO MSG="Running quad gantry leveling..."
QUAD_GANTRY_LEVEL
RATOS_ECHO MSG="Rehoming Z after quad gantry leveling..."
{% set needs_rehoming = True %}
{% endif %}
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
{% if needs_rehoming %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
{% endif %}
[gcode_macro _BEACON_SAVE_MULTIPLIER]
gcode =
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% set multiplier = printer["gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER"].runtime_multiplier|default(-1.0)|float %}
DEBUG_ECHO PREFIX="_BEACON_SAVE_MULTIPLIER" MSG="multiplier: {multiplier}, beacon_contact_start_print_true_zero: {beacon_contact_start_print_true_zero}, beacon_contact_expansion_compensation: {beacon_contact_expansion_compensation}"
{% if multiplier > 0 and beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_multiplier VALUE={multiplier}
SET_GCODE_VARIABLE MACRO=_BEACON_APPLY_RUNTIME_MULTIPLIER VARIABLE=runtime_multiplier VALUE=-1.0
CONSOLE_ECHO TITLE="Hotend thermal expansion compensation" TYPE="success" MSG={'"New value is: %.6f_N_The new multiplier value has been saved to the configuration."' % multiplier}
{% else %}
Z_OFFSET_APPLY_PROBE
{% endif %}
[gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER]
variable_runtime_multiplier = -1.0
gcode =
{% set toolhead = 0 %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode == 'primary' else 0 %}
{% endif %}
{% set beacon_contact_true_zero_temp = printer["gcode_macro RatOS"].beacon_contact_true_zero_temp|default(150)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% set layer_number = printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|default(0)|int %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% if layer_number == 0 and is_printing_gcode %}
{% set link_url = "https://os.ratrig.com/docs/slicers" %}
{% set link_text = "RatOS Slicer Documentation" %}
{% set line_1 = '"Your slicer is not correctly reporting layer information. See the layer change custom g-code in the %s".' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="Missing layer information" TYPE="warning" MSG={line_1}
{% endif %}
DEBUG_ECHO PREFIX="_BEACON_APPLY_RUNTIME_MULTIPLIER" MSG="layer_number: {layer_number}, is_printing_gcode: {is_printing_gcode}, beacon_contact_start_print_true_zero: {beacon_contact_start_print_true_zero}, beacon_contact_expansion_compensation: {beacon_contact_expansion_compensation}"
{% if layer_number == 1 and is_printing_gcode and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
{% set svv = printer.save_variables.variables %}
{% set nozzle_expansion_coefficient = svv.nozzle_expansion_coefficient_t0|default(0)|float %}
{% if toolhead == 1 %}
{% set nozzle_expansion_coefficient = svv.nozzle_expansion_coefficient_t1|default(0)|float %}
{% endif %}
{% set beacon_contact_expansion_multiplier = svv.nozzle_expansion_coefficient_multiplier|default(1.0)|float %}
{% set print_temp = printer["gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET"].runtime_temp|default(0)|int %}
{% if print_temp > 0 %}
{% set z_offset = printer.gcode_move.homing_origin.z|float %}
{% set temp_delta = print_temp - beacon_contact_true_zero_temp %}
{% set coefficient_per_degree = nozzle_expansion_coefficient / 100 %}
{% set z_offset_per_degree = z_offset / temp_delta %}
{% set new_multiplier = z_offset_per_degree / coefficient_per_degree %}
DEBUG_ECHO PREFIX="_BEACON_APPLY_RUNTIME_MULTIPLIER" MSG="print_temp: {print_temp}, z_offset: {z_offset}, temp_delta: {temp_delta}, nozzle_expansion_coefficient: {nozzle_expansion_coefficient}, coefficient_per_degree: {coefficient_per_degree}, z_offset_per_degree: {z_offset_per_degree}, old_multiplier: {beacon_contact_expansion_multiplier}, new_multiplier: {new_multiplier}"
SET_GCODE_VARIABLE MACRO=_BEACON_APPLY_RUNTIME_MULTIPLIER VARIABLE=runtime_multiplier VALUE={new_multiplier}
{% endif %}
{% endif %}
[fan_generic part_fan_t0]
pin = !toolboard_t0:PA0
cycle_time = 0.00004
[fan_generic part_fan_t1]
pin = !toolboard_t1:PA0
cycle_time = 0.00004
[heater_fan toolhead_cooling_fan_t1]
heater = extruder1
pin = toolboard_t1:PA1
[controller_fan controller_fan]
pin = PD12
[gcode_macro T0]
variable_join = 0
variable_remap = 0
variable_alert = ""
variable_filament_name = ""
variable_filament_type = ""
variable_filament_temp = 0
variable_runout_sensor = ""
variable_active = True
variable_color = "7bff33"
variable_hotend_type = "UHF"
variable_has_cht_nozzle = False
variable_cooling_position_to_nozzle_distance = 40
variable_tooolhead_sensor_to_extruder_gear_distance = 15
variable_extruder_gear_to_cooling_position_distance = 30
variable_filament_loading_nozzle_offset = -5
variable_filament_grabbing_length = 5
variable_filament_grabbing_speed = 1
variable_enable_insert_detection = True
variable_enable_runout_detection = True
variable_enable_clog_detection = True
variable_unload_after_runout = True
variable_purge_after_load = 0
variable_purge_before_unload = 0
variable_extruder_load_speed = 60
variable_filament_load_speed = 10
variable_standby = False
variable_temperature_offset = 0
variable_has_oozeguard = True
variable_has_front_arm_nozzle_wiper = False
variable_loading_position = -32.8
variable_parking_position = -57.8
variable_resume_after_insert = True
gcode =
{% set x = params.X|default(-1.0)|float %}
{% set y = params.Y|default(-1.0)|float %}
{% set z = params.Z|default(0.0)|float %}
{% set s = params.S|default(1)|int %}
{% if printer["gcode_macro _SELECT_TOOL"] is defined %}
_SELECT_TOOL T=0 X={x} Y={y} Z={z} TOOLSHIFT={s}
{% endif %}
[gcode_macro T1]
variable_join = 0
variable_remap = 0
variable_alert = ""
variable_filament_name = ""
variable_filament_type = ""
variable_filament_temp = 0
variable_runout_sensor = ""
variable_active = False
variable_color = "0ea5e9"
variable_hotend_type = "UHF"
variable_has_cht_nozzle = False
variable_cooling_position_to_nozzle_distance = 40
variable_tooolhead_sensor_to_extruder_gear_distance = 15
variable_extruder_gear_to_cooling_position_distance = 30
variable_filament_loading_nozzle_offset = -5
variable_filament_grabbing_length = 5
variable_filament_grabbing_speed = 1
variable_enable_insert_detection = True
variable_enable_runout_detection = True
variable_enable_clog_detection = True
variable_unload_after_runout = True
variable_purge_after_load = 0
variable_purge_before_unload = 0
variable_extruder_load_speed = 60
variable_filament_load_speed = 10
variable_standby = False
variable_temperature_offset = 0
variable_has_oozeguard = True
variable_has_front_arm_nozzle_wiper = False
variable_loading_position = 532.8
variable_parking_position = 557.8
variable_resume_after_insert = True
gcode =
{% set x = params.X|default(-1.0)|float %}
{% set y = params.Y|default(-1.0)|float %}
{% set z = params.Z|default(0.0)|float %}
{% set s = params.S|default(1)|int %}
{% if printer["gcode_macro _SELECT_TOOL"] is defined %}
_SELECT_TOOL T=1 X={x} Y={y} Z={z} TOOLSHIFT={s}
{% endif %}
[save_variables]
filename = /home/pi/printer_data/config/ratos-variables.cfg
[fan_generic filter]
enable_pin = PD15
pin = !PD14
[filament_switch_sensor toolhead_filament_sensor_t0]
pause_on_runout = False
event_delay = 0.1
switch_pin = ^toolboard_t0:PB4
runout_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT TOOLHEAD=0
insert_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT TOOLHEAD=0
[gcode_button toolhead_filament_sensor_button_t0]
pin = ^!toolboard_t0:PB3
release_gcode =
{% if (printer.print_stats.state == "printing") %}
_ON_TOOLHEAD_FILAMENT_SENSOR_CLOG TOOLHEAD=0
{% else %}
_ON_FILAMENT_SENSOR_BUTTON_PRESSED TOOLHEAD=0
{% endif %}
press_gcode =
[filament_switch_sensor toolhead_filament_sensor_t1]
pause_on_runout = False
event_delay = 0.1
switch_pin = ^toolboard_t1:PB4
runout_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT TOOLHEAD=1
insert_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT TOOLHEAD=1
[gcode_button toolhead_filament_sensor_button_t1]
pin = ^!toolboard_t1:PB3
release_gcode =
{% if (printer.print_stats.state == "printing") %}
_ON_TOOLHEAD_FILAMENT_SENSOR_CLOG TOOLHEAD=1
{% else %}
_ON_FILAMENT_SENSOR_BUTTON_PRESSED TOOLHEAD=1
{% endif %}
press_gcode =
[z_offset_probe]
pin = ^PG10
z_offset = -7
y_offset = 0
x_offset = 37.5
speed = 10
samples = 3
sample_retract_dist = 5
lift_speed = 10.0
samples_result = median
samples_tolerance = 0.2
samples_tolerance_retries = 5
[neopixel vaoc_led]
pin = PB0
chain_count = 6
color_order = GRB
[heater_fan vaoc_fan]
pin = PD13
heater = heater_bed
fan_speed = 1.0
heater_temp = 50
[beacon model default]
model_coef = 2.1062824025598856,
2.4440316355411857,
-0.11501792732933275,
-1.7134441218325234,
1.1664890422715875,
4.711775301218424,
-0.9438437775287646,
-4.981046326282779,
0.3837479201244267,
1.9440880295599143
model_domain = 1.8805645480637524e-07,1.933142365247182e-07
model_range = 0.200000,5.000000
model_temp = 50.590932
model_offset = 0.00000
[bed_mesh Cold]
version = 1
points =
0.007461, 0.006491, 0.005192, 0.002288, -0.000172, -0.007086, -0.011766, -0.020290, -0.026805, -0.037284, -0.046471, -0.063436, -0.074860, -0.080044, -0.085584, -0.098211, -0.099182, -0.095773, -0.103354, -0.103764, -0.099523, -0.103356, -0.099306, -0.090156, -0.083630, -0.082877, -0.087211, -0.077348, -0.075667, -0.066477, -0.065983, -0.052116, -0.042148, -0.031557, -0.018692, -0.018666, -0.015670, -0.009495, -0.009319, -0.001786
-0.011093, -0.010261, -0.012553, -0.010602, -0.017295, -0.019234, -0.022414, -0.040239, -0.042238, -0.042323, -0.059761, -0.068641, -0.073941, -0.084499, -0.088548, -0.102924, -0.092054, -0.097796, -0.106238, -0.092444, -0.096233, -0.094358, -0.092674, -0.088806, -0.088972, -0.086485, -0.076726, -0.081300, -0.076172, -0.061118, -0.059095, -0.050281, -0.038548, -0.029141, -0.024920, -0.018511, -0.014435, -0.009368, -0.010340, -0.009909
-0.003389, -0.003860, -0.003322, -0.003001, -0.001339, -0.003508, -0.008299, -0.020213, -0.027418, -0.028917, -0.039062, -0.043289, -0.052778, -0.068082, -0.068617, -0.073038, -0.080173, -0.073216, -0.080775, -0.075226, -0.073524, -0.073717, -0.074593, -0.070483, -0.071152, -0.066784, -0.064871, -0.062478, -0.055959, -0.052535, -0.044347, -0.033246, -0.025673, -0.021386, -0.014717, -0.010495, -0.000039, -0.004199, -0.005111, -0.003218
-0.012887, -0.016755, -0.012392, -0.007399, -0.009303, -0.015398, -0.013368, -0.018153, -0.022464, -0.035289, -0.042047, -0.043213, -0.059080, -0.072421, -0.067691, -0.072995, -0.076154, -0.073258, -0.070752, -0.069687, -0.061777, -0.062859, -0.069905, -0.059192, -0.063456, -0.064114, -0.050951, -0.057722, -0.058706, -0.036685, -0.040694, -0.034892, -0.016690, -0.010731, -0.012241, -0.004924, -0.004794, -0.003284, 0.001678, -0.000764
-0.005850, -0.009761, -0.004126, -0.006039, -0.001221, 0.005177, 0.002667, -0.004411, -0.011135, -0.013174, -0.023336, -0.029162, -0.037250, -0.048709, -0.054204, -0.048757, -0.052283, -0.059633, -0.055566, -0.048279, -0.049530, -0.041566, -0.050142, -0.042075, -0.040332, -0.046552, -0.044011, -0.040484, -0.038016, -0.029232, -0.023105, -0.013624, -0.010695, -0.001022, 0.002515, 0.001151, -0.004062, 0.003327, 0.005098, 0.007616
-0.028550, -0.024713, -0.025268, -0.015150, -0.015975, -0.013043, -0.008213, -0.018484, -0.020144, -0.025550, -0.032620, -0.038956, -0.045758, -0.046805, -0.051060, -0.055238, -0.053872, -0.060909, -0.059798, -0.047191, -0.050187, -0.049243, -0.045741, -0.039774, -0.044261, -0.037582, -0.041374, -0.041971, -0.031386, -0.029345, -0.026317, -0.013958, -0.010042, -0.001184, -0.002099, 0.001264, -0.009442, -0.002109, 0.000052, -0.000136
-0.035384, -0.035889, -0.025341, -0.018312, -0.017454, -0.011853, -0.008406, -0.011146, -0.014979, -0.019569, -0.024981, -0.034315, -0.032212, -0.041561, -0.040392, -0.045440, -0.048152, -0.046438, -0.052237, -0.045517, -0.042658, -0.043353, -0.033978, -0.041298, -0.037106, -0.040904, -0.035743, -0.032246, -0.026219, -0.031455, -0.027496, -0.013852, -0.012577, -0.007372, -0.005998, -0.005007, -0.003608, -0.005967, -0.004773, -0.005944
-0.050980, -0.044608, -0.039030, -0.029514, -0.025902, -0.023617, -0.020997, -0.017717, -0.025112, -0.029723, -0.034422, -0.038550, -0.040339, -0.042743, -0.047551, -0.047558, -0.056111, -0.048126, -0.055932, -0.052151, -0.043877, -0.047448, -0.048700, -0.043149, -0.041480, -0.037945, -0.029757, -0.034228, -0.029037, -0.028080, -0.019158, -0.011801, -0.010686, -0.005284, -0.005548, -0.006481, -0.006208, -0.005687, -0.010728, -0.011470
-0.049116, -0.043654, -0.037612, -0.035818, -0.019475, -0.010439, -0.008593, -0.009175, -0.017334, -0.023155, -0.019752, -0.027308, -0.028795, -0.034464, -0.040580, -0.041585, -0.042624, -0.048116, -0.045452, -0.043846, -0.029855, -0.038602, -0.034649, -0.029742, -0.024593, -0.037371, -0.030295, -0.031254, -0.023611, -0.022250, -0.012550, -0.000173, -0.004609, 0.002161, 0.003571, 0.002607, 0.002178, -0.002660, -0.007581, -0.007131
-0.067151, -0.058166, -0.046867, -0.043516, -0.031029, -0.023278, -0.017088, -0.026482, -0.024091, -0.024304, -0.029253, -0.033591, -0.034120, -0.042630, -0.044865, -0.049353, -0.057098, -0.051133, -0.059092, -0.042189, -0.041862, -0.043956, -0.046308, -0.033369, -0.030698, -0.025098, -0.022897, -0.023863, -0.014079, -0.015089, -0.009541, 0.000476, -0.001451, 0.001290, 0.008222, 0.008740, -0.000305, 0.000207, -0.005974, -0.009586
-0.069453, -0.067938, -0.057222, -0.050630, -0.038809, -0.026024, -0.026908, -0.025339, -0.024257, -0.028552, -0.031574, -0.036503, -0.036797, -0.043281, -0.045684, -0.058041, -0.059394, -0.063247, -0.056970, -0.055336, -0.044071, -0.044529, -0.050298, -0.030168, -0.033910, -0.012865, -0.008743, -0.026404, -0.017730, -0.017063, -0.013294, -0.003863, -0.004586, -0.002535, 0.000433, -0.002340, -0.008791, -0.013220, -0.014469, -0.018005
-0.081865, -0.079047, -0.064087, -0.062608, -0.048682, -0.043946, -0.042808, -0.042529, -0.039890, -0.036762, -0.045187, -0.047741, -0.051609, -0.047454, -0.046618, -0.056751, -0.064289, -0.074933, -0.066690, -0.061184, -0.057354, -0.054361, -0.048441, -0.047569, -0.040889, -0.010532, -0.015785, -0.017734, -0.021160, -0.024276, -0.016874, -0.010406, -0.006235, 0.000081, -0.008309, -0.006930, -0.018744, -0.019937, -0.024714, -0.030763
-0.090586, -0.082825, -0.072250, -0.071390, -0.058562, -0.046965, -0.042078, -0.037232, -0.042595, -0.037628, -0.043896, -0.047174, -0.048479, -0.056180, -0.051281, -0.059496, -0.064632, -0.067490, -0.074141, -0.064931, -0.060665, -0.046346, -0.058632, -0.048615, -0.051671, -0.044364, -0.044704, -0.036041, -0.028474, -0.033769, -0.020789, -0.021275, -0.012239, -0.011524, -0.014643, -0.014733, -0.018715, -0.029179, -0.036356, -0.037451
-0.099093, -0.086451, -0.080688, -0.070008, -0.067741, -0.053085, -0.053858, -0.050214, -0.047560, -0.043933, -0.047681, -0.046555, -0.052740, -0.057237, -0.065301, -0.066711, -0.075815, -0.072663, -0.079542, -0.065932, -0.063245, -0.065190, -0.061073, -0.062358, -0.059847, -0.053207, -0.045515, -0.048729, -0.038510, -0.033677, -0.032470, -0.021355, -0.026149, -0.013973, -0.017327, -0.016228, -0.028331, -0.036835, -0.043638, -0.050726
-0.099641, -0.094105, -0.085295, -0.077094, -0.064061, -0.055249, -0.045943, -0.043391, -0.042239, -0.039437, -0.038856, -0.034971, -0.044575, -0.048620, -0.059969, -0.061657, -0.060767, -0.076333, -0.065058, -0.064556, -0.062435, -0.059683, -0.065672, -0.064350, -0.060339, -0.045875, -0.049808, -0.041942, -0.036188, -0.031011, -0.025105, -0.018745, -0.021626, -0.013410, -0.016936, -0.025134, -0.022305, -0.031806, -0.038367, -0.046328
-0.113051, -0.107214, -0.092765, -0.086082, -0.076537, -0.070464, -0.063431, -0.058591, -0.051375, -0.045613, -0.049740, -0.057974, -0.053107, -0.054692, -0.067394, -0.062397, -0.073739, -0.071721, -0.070093, -0.068942, -0.063772, -0.069700, -0.068565, -0.075579, -0.060336, -0.063560, -0.051949, -0.042588, -0.045368, -0.031419, -0.038438, -0.032251, -0.030670, -0.033164, -0.033791, -0.032798, -0.039942, -0.041520, -0.052742, -0.064388
-0.113876, -0.106956, -0.099121, -0.094437, -0.082831, -0.066057, -0.062400, -0.047628, -0.048261, -0.049584, -0.044111, -0.058087, -0.049896, -0.058538, -0.055750, -0.063271, -0.061490, -0.067420, -0.059644, -0.054325, -0.057791, -0.057689, -0.066135, -0.056582, -0.056311, -0.058584, -0.057156, -0.049757, -0.048736, -0.038708, -0.041747, -0.040347, -0.039855, -0.042357, -0.040912, -0.043044, -0.054176, -0.053957, -0.062565, -0.078215
-0.109514, -0.106595, -0.100554, -0.089052, -0.086658, -0.076262, -0.065950, -0.062395, -0.059317, -0.049165, -0.051989, -0.057630, -0.057496, -0.047297, -0.060486, -0.054516, -0.059486, -0.054829, -0.051633, -0.054308, -0.049024, -0.056615, -0.049454, -0.050162, -0.044351, -0.061416, -0.054935, -0.051541, -0.043863, -0.043595, -0.039897, -0.042373, -0.035860, -0.042810, -0.047129, -0.042985, -0.055748, -0.062666, -0.068284, -0.082402
-0.116946, -0.107033, -0.099979, -0.091125, -0.085952, -0.072485, -0.058323, -0.052601, -0.044486, -0.038936, -0.036686, -0.037996, -0.040875, -0.043305, -0.049550, -0.061271, -0.054167, -0.058420, -0.051977, -0.048508, -0.047408, -0.043033, -0.053943, -0.049205, -0.052995, -0.059896, -0.057723, -0.043071, -0.040139, -0.041168, -0.033809, -0.043846, -0.042841, -0.042260, -0.048455, -0.046352, -0.059793, -0.061222, -0.068764, -0.078559
-0.123952, -0.117574, -0.106560, -0.094060, -0.090078, -0.078365, -0.071567, -0.059140, -0.051745, -0.043973, -0.043913, -0.043506, -0.040840, -0.054097, -0.060135, -0.063143, -0.065846, -0.062285, -0.065811, -0.053948, -0.052734, -0.050152, -0.057142, -0.059078, -0.057912, -0.064690, -0.067000, -0.049705, -0.054287, -0.053141, -0.059994, -0.055272, -0.060892, -0.058114, -0.066990, -0.065287, -0.074087, -0.081801, -0.084607, -0.092346
-0.145252, -0.127528, -0.118129, -0.107939, -0.101566, -0.088548, -0.066458, -0.059879, -0.059273, -0.049366, -0.042391, -0.047825, -0.043862, -0.048813, -0.059956, -0.062835, -0.063355, -0.053670, -0.064332, -0.052742, -0.056074, -0.058202, -0.056733, -0.064417, -0.070048, -0.059847, -0.063711, -0.061877, -0.063194, -0.060533, -0.062232, -0.064046, -0.072401, -0.068244, -0.082728, -0.081161, -0.091080, -0.096379, -0.099250, -0.104111
-0.146104, -0.139439, -0.126890, -0.111477, -0.108589, -0.095601, -0.084177, -0.076561, -0.069033, -0.060681, -0.064760, -0.065881, -0.060704, -0.066369, -0.069432, -0.076138, -0.071936, -0.069662, -0.070249, -0.064258, -0.068117, -0.054851, -0.067486, -0.065458, -0.072534, -0.073013, -0.071548, -0.072092, -0.068437, -0.074366, -0.069868, -0.084766, -0.080798, -0.086920, -0.090441, -0.091288, -0.103200, -0.110727, -0.117322, -0.123474
-0.158113, -0.148510, -0.130854, -0.129626, -0.113300, -0.101278, -0.087840, -0.076572, -0.071674, -0.061126, -0.059286, -0.059463, -0.061702, -0.061785, -0.067435, -0.068757, -0.066612, -0.060357, -0.067586, -0.060868, -0.062672, -0.068102, -0.060063, -0.061783, -0.070543, -0.060635, -0.061896, -0.061679, -0.077386, -0.071617, -0.077014, -0.077073, -0.077332, -0.084728, -0.090223, -0.093945, -0.104093, -0.110649, -0.122481, -0.130671
-0.153130, -0.147414, -0.137351, -0.125914, -0.114131, -0.105346, -0.087110, -0.078560, -0.076204, -0.069521, -0.062025, -0.064195, -0.064100, -0.066501, -0.079651, -0.078018, -0.074770, -0.068412, -0.069449, -0.060898, -0.063221, -0.061121, -0.063030, -0.067482, -0.066092, -0.062936, -0.057775, -0.069210, -0.073608, -0.069601, -0.081003, -0.070983, -0.088108, -0.083595, -0.094317, -0.096298, -0.106665, -0.109074, -0.125099, -0.130320
-0.156512, -0.150687, -0.137917, -0.134894, -0.118530, -0.105592, -0.086920, -0.084070, -0.070715, -0.068631, -0.061791, -0.062648, -0.054265, -0.056313, -0.055133, -0.064266, -0.061645, -0.063987, -0.064921, -0.060550, -0.068281, -0.064492, -0.068327, -0.074693, -0.068622, -0.071623, -0.068684, -0.069768, -0.073370, -0.075951, -0.071333, -0.074399, -0.074590, -0.077277, -0.087007, -0.095356, -0.104096, -0.110605, -0.122144, -0.131191
-0.151620, -0.145713, -0.133514, -0.120998, -0.118414, -0.102646, -0.091663, -0.081373, -0.072109, -0.070336, -0.062524, -0.051313, -0.052630, -0.054881, -0.065756, -0.064140, -0.076119, -0.071690, -0.071927, -0.073940, -0.070887, -0.071116, -0.076969, -0.077964, -0.064431, -0.073525, -0.060225, -0.075398, -0.063926, -0.073347, -0.077485, -0.077899, -0.082430, -0.079977, -0.086461, -0.096800, -0.105783, -0.110702, -0.126253, -0.132748
-0.152257, -0.147336, -0.132013, -0.123943, -0.114379, -0.097983, -0.087681, -0.080620, -0.064897, -0.062599, -0.057646, -0.057481, -0.057430, -0.053873, -0.071415, -0.061969, -0.068720, -0.069175, -0.069521, -0.068544, -0.069835, -0.062461, -0.060814, -0.071821, -0.062577, -0.064051, -0.063744, -0.066651, -0.069733, -0.066233, -0.069618, -0.071764, -0.072299, -0.073811, -0.079471, -0.095054, -0.097172, -0.109348, -0.118041, -0.130249
-0.157120, -0.143488, -0.127398, -0.123470, -0.109521, -0.097895, -0.087209, -0.078468, -0.068097, -0.063565, -0.062131, -0.071589, -0.068384, -0.062772, -0.069223, -0.060846, -0.065889, -0.062133, -0.066074, -0.061891, -0.048583, -0.064231, -0.057388, -0.068258, -0.062502, -0.060061, -0.066206, -0.068455, -0.072766, -0.072512, -0.073715, -0.065142, -0.070177, -0.073215, -0.088960, -0.089510, -0.106414, -0.115035, -0.120642, -0.133094
-0.150736, -0.142981, -0.134078, -0.120948, -0.111849, -0.097508, -0.081954, -0.071985, -0.059746, -0.055637, -0.059236, -0.062495, -0.064679, -0.057357, -0.052917, -0.062832, -0.052532, -0.058148, -0.054486, -0.048343, -0.053121, -0.050049, -0.058324, -0.057173, -0.054778, -0.057764, -0.056237, -0.059572, -0.069099, -0.069175, -0.068283, -0.069737, -0.066182, -0.065674, -0.083632, -0.086952, -0.102895, -0.115251, -0.120516, -0.131372
-0.157143, -0.146424, -0.131169, -0.113217, -0.102092, -0.092778, -0.080282, -0.080224, -0.061472, -0.057702, -0.056392, -0.065442, -0.063335, -0.056430, -0.063373, -0.059407, -0.062116, -0.050788, -0.054894, -0.050835, -0.052565, -0.047216, -0.046971, -0.054092, -0.044490, -0.056481, -0.050705, -0.058802, -0.064554, -0.069890, -0.069178, -0.068719, -0.078686, -0.078556, -0.085829, -0.094617, -0.111722, -0.120174, -0.135981, -0.144333
-0.152522, -0.138671, -0.122719, -0.115609, -0.099025, -0.089493, -0.081361, -0.069903, -0.060507, -0.051495, -0.046115, -0.051458, -0.052072, -0.046652, -0.053481, -0.045183, -0.047989, -0.043640, -0.042487, -0.042438, -0.043839, -0.039304, -0.041218, -0.032364, -0.036319, -0.038431, -0.042514, -0.052490, -0.057458, -0.062729, -0.060569, -0.066440, -0.066434, -0.071085, -0.083877, -0.096589, -0.106169, -0.114513, -0.127149, -0.140643
-0.153338, -0.137266, -0.125832, -0.109980, -0.096297, -0.088597, -0.072207, -0.066506, -0.070057, -0.049496, -0.049513, -0.052737, -0.043196, -0.049589, -0.046291, -0.045430, -0.041597, -0.040574, -0.028932, -0.033353, -0.027803, -0.027226, -0.030948, -0.027060, -0.033802, -0.035948, -0.044113, -0.050954, -0.059800, -0.062425, -0.064095, -0.065343, -0.078817, -0.085540, -0.091272, -0.103010, -0.111491, -0.118450, -0.138649, -0.146185
-0.165845, -0.148827, -0.128989, -0.119033, -0.108111, -0.091857, -0.078258, -0.068709, -0.061145, -0.051377, -0.043186, -0.046994, -0.036154, -0.038582, -0.036824, -0.033456, -0.035707, -0.026190, -0.021009, -0.021201, -0.018579, -0.013272, -0.023522, -0.019093, -0.020911, -0.031873, -0.028552, -0.044968, -0.052374, -0.054013, -0.064673, -0.071395, -0.063406, -0.080359, -0.090538, -0.093820, -0.107167, -0.120079, -0.127405, -0.139345
-0.171952, -0.160508, -0.143397, -0.131654, -0.111518, -0.091939, -0.082450, -0.072053, -0.062216, -0.054462, -0.050708, -0.042595, -0.046336, -0.034402, -0.039011, -0.035884, -0.018562, -0.021760, -0.022790, -0.012298, -0.014539, -0.012572, -0.017195, -0.019879, -0.021994, -0.032785, -0.042250, -0.047098, -0.061002, -0.065371, -0.068197, -0.074629, -0.080501, -0.085994, -0.101473, -0.103640, -0.110778, -0.129088, -0.144282, -0.152210
-0.176097, -0.158858, -0.147142, -0.136299, -0.118650, -0.093834, -0.082677, -0.072558, -0.053090, -0.045210, -0.043162, -0.042916, -0.032116, -0.026719, -0.028635, -0.024435, -0.020613, -0.013944, -0.015142, -0.005098, -0.006687, -0.005589, -0.012400, -0.010552, -0.016974, -0.019076, -0.030411, -0.040211, -0.054002, -0.056807, -0.059066, -0.071173, -0.074028, -0.079411, -0.093869, -0.096911, -0.105279, -0.119547, -0.133183, -0.146886
-0.170370, -0.160704, -0.140063, -0.121426, -0.106232, -0.090447, -0.072787, -0.067127, -0.058339, -0.045884, -0.041345, -0.034878, -0.036057, -0.027776, -0.028867, -0.021094, -0.013394, -0.018285, -0.004606, -0.001940, 0.002735, -0.000849, -0.012592, -0.007442, -0.020905, -0.021837, -0.027961, -0.043853, -0.045423, -0.052784, -0.069788, -0.063952, -0.075687, -0.090528, -0.091471, -0.097783, -0.120558, -0.125469, -0.136976, -0.147275
-0.177818, -0.162813, -0.139485, -0.125422, -0.108649, -0.088932, -0.080966, -0.060673, -0.056803, -0.047998, -0.035275, -0.031405, -0.022916, -0.017648, -0.017072, -0.010941, -0.006310, -0.005895, -0.004187, -0.002651, -0.002010, 0.004917, 0.001060, -0.002042, -0.003196, -0.017465, -0.019108, -0.036243, -0.041296, -0.053219, -0.056998, -0.063940, -0.067003, -0.077935, -0.088118, -0.094794, -0.102858, -0.113148, -0.130876, -0.142665
-0.186066, -0.172567, -0.152547, -0.132619, -0.115033, -0.098434, -0.081389, -0.074243, -0.062804, -0.051491, -0.047331, -0.036343, -0.025746, -0.026807, -0.014467, -0.010036, -0.005335, -0.003951, -0.008903, 0.001363, 0.007666, -0.000878, -0.000267, -0.000998, -0.012807, -0.017154, -0.030718, -0.041063, -0.049902, -0.062423, -0.071330, -0.068601, -0.075463, -0.082828, -0.097246, -0.114564, -0.126037, -0.128842, -0.148921, -0.151322
-0.184199, -0.169036, -0.150380, -0.136076, -0.122619, -0.099100, -0.084254, -0.070777, -0.060864, -0.051711, -0.038204, -0.029469, -0.016319, -0.013196, 0.003898, 0.002159, 0.002607, 0.008675, 0.005635, 0.014450, 0.007436, 0.015024, 0.011524, 0.008567, 0.003378, -0.006371, -0.014263, -0.029627, -0.038925, -0.045820, -0.065516, -0.064098, -0.065819, -0.082093, -0.092620, -0.101046, -0.115087, -0.125473, -0.140456, -0.151829
-0.198905, -0.183204, -0.164462, -0.153856, -0.136070, -0.116021, -0.096896, -0.079541, -0.061229, -0.055899, -0.046070, -0.031554, -0.021725, -0.015311, -0.008550, 0.002239, 0.003107, 0.011018, 0.008957, 0.017891, 0.024235, 0.015171, 0.016806, 0.008372, 0.004135, -0.007913, -0.020961, -0.035200, -0.049838, -0.054874, -0.067166, -0.081205, -0.085378, -0.089679, -0.108375, -0.115204, -0.128235, -0.139843, -0.158895, -0.167550
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh 60C]
version = 1
points =
0.011660, 0.016558, 0.012896, 0.011014, 0.009018, 0.002663, -0.004346, -0.009581, -0.016163, -0.029804, -0.037334, -0.054377, -0.064931, -0.071072, -0.076257, -0.088377, -0.089148, -0.087404, -0.097071, -0.095374, -0.088806, -0.095827, -0.089353, -0.083897, -0.077086, -0.077310, -0.082311, -0.069570, -0.066952, -0.064415, -0.060938, -0.044735, -0.041391, -0.028566, -0.014345, -0.016367, -0.013320, -0.009358, -0.009477, -0.003416
-0.000898, -0.000952, -0.000997, -0.000924, -0.007150, -0.006269, -0.009627, -0.026651, -0.028413, -0.029692, -0.046022, -0.057993, -0.063900, -0.072464, -0.078204, -0.089596, -0.077825, -0.087856, -0.096497, -0.080970, -0.082192, -0.087638, -0.086041, -0.074646, -0.078648, -0.077258, -0.066126, -0.073781, -0.066759, -0.050961, -0.056815, -0.046372, -0.033275, -0.023454, -0.021033, -0.016632, -0.011314, -0.009384, -0.007031, -0.010759
0.004656, 0.005213, 0.005310, 0.007170, 0.007560, 0.007407, 0.003858, -0.008796, -0.014174, -0.016391, -0.026065, -0.031080, -0.040074, -0.054139, -0.058130, -0.059315, -0.069099, -0.062492, -0.068769, -0.063581, -0.062689, -0.060531, -0.064365, -0.059828, -0.058663, -0.056960, -0.052580, -0.051334, -0.047629, -0.044706, -0.037173, -0.025516, -0.022967, -0.012419, -0.007982, -0.006190, -0.000152, -0.002659, -0.004589, -0.004034
-0.002577, -0.005133, 0.001163, 0.006131, 0.003919, -0.004199, 0.003455, -0.005438, -0.011174, -0.017726, -0.026883, -0.030408, -0.049238, -0.054720, -0.052463, -0.060611, -0.064633, -0.059372, -0.058313, -0.056435, -0.051116, -0.053621, -0.055623, -0.047763, -0.052926, -0.049406, -0.038757, -0.047533, -0.046927, -0.027344, -0.033179, -0.026152, -0.007796, -0.006533, -0.006439, -0.001753, -0.002273, -0.001246, 0.003690, 0.000391
0.004659, 0.001917, 0.004545, 0.004529, 0.009741, 0.014995, 0.014337, 0.009165, -0.000392, -0.001627, -0.009785, -0.018280, -0.026336, -0.036117, -0.040493, -0.036770, -0.039492, -0.049966, -0.044248, -0.040041, -0.039794, -0.034282, -0.040103, -0.030903, -0.031845, -0.036479, -0.030446, -0.028990, -0.035674, -0.024437, -0.016294, -0.013676, -0.006996, 0.004243, 0.005256, -0.000210, -0.001328, 0.002315, 0.002424, 0.001030
-0.019416, -0.016373, -0.014256, -0.006875, -0.005967, -0.001450, 0.004139, -0.007106, -0.004416, -0.011457, -0.020487, -0.030854, -0.031068, -0.036004, -0.039018, -0.043669, -0.041501, -0.051376, -0.046905, -0.037183, -0.038752, -0.042280, -0.037993, -0.029197, -0.038275, -0.027963, -0.030666, -0.033323, -0.018088, -0.019944, -0.014415, -0.005747, -0.003578, 0.002898, 0.005140, 0.005572, 0.002072, -0.002963, 0.002566, -0.002837
-0.027082, -0.025445, -0.013858, -0.008426, -0.004460, -0.001300, 0.003905, 0.005515, -0.004427, -0.008928, -0.010829, -0.020737, -0.021754, -0.024533, -0.030133, -0.032067, -0.032735, -0.038588, -0.036517, -0.033215, -0.033359, -0.027226, -0.026118, -0.025963, -0.025025, -0.026312, -0.020615, -0.028443, -0.021613, -0.020238, -0.015854, -0.007076, -0.003322, 0.000982, -0.000084, 0.001491, -0.000934, -0.003172, -0.004223, -0.005493
-0.038903, -0.034021, -0.026959, -0.017254, -0.010288, -0.011037, -0.006942, -0.002087, -0.012740, -0.013960, -0.018769, -0.024569, -0.021636, -0.029747, -0.031856, -0.035233, -0.040907, -0.036101, -0.041364, -0.039607, -0.027757, -0.033566, -0.035108, -0.027205, -0.030257, -0.025789, -0.019555, -0.022651, -0.018084, -0.021355, -0.009206, -0.003503, 0.000641, 0.002910, 0.005099, 0.000630, 0.000828, -0.004374, -0.005989, -0.011619
-0.038440, -0.034397, -0.025759, -0.021780, -0.007993, 0.001317, 0.005935, 0.004422, -0.001761, -0.006689, -0.007542, -0.010880, -0.015946, -0.018777, -0.022121, -0.027545, -0.029435, -0.033325, -0.030811, -0.030160, -0.018186, -0.023633, -0.021819, -0.015320, -0.010883, -0.021207, -0.019740, -0.013151, -0.018489, -0.013470, 0.000997, 0.004406, 0.005600, 0.012017, 0.009169, 0.009441, 0.008155, -0.000338, -0.005758, -0.005792
-0.054141, -0.042896, -0.031369, -0.029023, -0.016364, -0.005891, -0.004314, -0.008455, -0.004525, -0.011128, -0.014231, -0.016639, -0.018990, -0.027254, -0.026694, -0.033488, -0.042823, -0.035701, -0.044838, -0.027143, -0.023924, -0.031228, -0.032610, -0.015639, -0.019858, -0.012741, -0.007706, -0.014082, 0.000892, -0.004440, 0.003625, 0.011716, 0.008077, 0.010665, 0.018123, 0.015679, 0.007360, 0.005351, -0.002447, -0.006640
-0.058664, -0.055738, -0.041441, -0.037060, -0.027007, -0.013223, -0.014085, -0.009420, -0.009078, -0.014199, -0.017584, -0.022571, -0.024659, -0.026539, -0.031502, -0.042806, -0.046845, -0.049400, -0.043647, -0.040642, -0.031485, -0.033571, -0.034868, -0.020135, -0.021866, -0.012326, 0.001404, -0.013729, -0.009557, -0.003627, -0.005678, 0.000345, 0.006683, 0.001596, 0.006150, 0.003772, -0.002681, -0.009621, -0.012513, -0.016152
-0.073250, -0.067929, -0.051451, -0.051121, -0.037106, -0.029615, -0.028698, -0.028802, -0.024686, -0.022098, -0.033054, -0.029936, -0.037305, -0.035268, -0.030765, -0.038927, -0.057054, -0.057488, -0.053391, -0.048247, -0.042872, -0.043053, -0.033748, -0.036898, -0.026125, -0.001827, -0.002222, -0.006490, -0.009688, -0.012879, -0.006698, -0.003286, 0.001075, 0.004349, -0.002126, -0.002827, -0.011080, -0.019360, -0.022758, -0.030766
-0.081758, -0.070514, -0.058030, -0.057232, -0.045584, -0.032552, -0.027400, -0.022475, -0.026899, -0.021579, -0.027928, -0.032701, -0.032266, -0.041035, -0.032869, -0.045248, -0.048924, -0.053264, -0.055180, -0.050585, -0.044016, -0.030240, -0.046793, -0.031662, -0.039977, -0.038798, -0.020312, -0.029607, -0.011461, -0.019931, -0.007767, -0.008920, -0.004463, 0.000928, -0.002770, -0.010543, -0.013163, -0.022105, -0.027643, -0.030791
-0.084636, -0.072055, -0.066446, -0.056713, -0.049999, -0.036873, -0.036720, -0.031391, -0.031615, -0.026284, -0.029550, -0.029516, -0.033761, -0.041516, -0.046268, -0.048214, -0.056350, -0.055388, -0.060799, -0.048035, -0.047485, -0.048081, -0.047648, -0.045650, -0.042480, -0.037901, -0.030579, -0.032147, -0.019554, -0.016383, -0.019108, -0.008281, -0.013608, -0.005989, -0.005150, -0.010843, -0.023377, -0.032470, -0.037645, -0.048234
-0.087920, -0.079952, -0.071131, -0.063602, -0.051944, -0.038891, -0.029363, -0.024613, -0.025721, -0.020487, -0.020920, -0.019087, -0.025980, -0.031839, -0.041318, -0.042927, -0.046106, -0.055911, -0.051926, -0.047035, -0.044406, -0.044765, -0.050059, -0.051883, -0.043344, -0.033441, -0.033219, -0.026853, -0.022733, -0.018927, -0.016675, -0.007310, -0.008944, -0.003162, -0.010712, -0.016454, -0.015349, -0.024692, -0.033558, -0.043507
-0.101613, -0.094867, -0.079173, -0.072348, -0.061197, -0.056394, -0.046913, -0.042411, -0.035874, -0.030432, -0.033215, -0.041141, -0.039436, -0.039474, -0.052793, -0.046210, -0.058662, -0.054918, -0.054129, -0.056140, -0.047843, -0.056102, -0.051070, -0.061077, -0.045256, -0.050476, -0.036396, -0.030153, -0.033990, -0.020877, -0.028969, -0.022011, -0.021806, -0.024044, -0.023774, -0.026545, -0.032027, -0.033411, -0.049183, -0.062863
-0.102042, -0.092206, -0.087059, -0.080013, -0.068514, -0.052839, -0.046425, -0.032846, -0.032788, -0.033300, -0.026925, -0.041909, -0.031954, -0.043027, -0.037674, -0.046558, -0.045600, -0.051162, -0.045813, -0.039907, -0.040303, -0.043387, -0.044510, -0.035377, -0.043775, -0.042820, -0.045108, -0.039646, -0.032311, -0.027817, -0.030210, -0.030265, -0.029100, -0.030388, -0.033042, -0.035512, -0.047831, -0.045909, -0.054990, -0.075567
-0.098480, -0.094149, -0.083581, -0.075659, -0.069762, -0.060793, -0.050611, -0.042195, -0.038673, -0.027533, -0.032257, -0.039302, -0.035020, -0.033129, -0.036111, -0.035946, -0.039215, -0.038478, -0.032961, -0.033617, -0.034441, -0.035639, -0.033236, -0.033871, -0.029666, -0.044878, -0.041426, -0.036345, -0.032548, -0.028533, -0.025205, -0.032394, -0.025401, -0.034204, -0.034934, -0.037654, -0.048721, -0.060636, -0.065702, -0.080894
-0.107217, -0.096752, -0.088384, -0.076464, -0.067534, -0.056510, -0.040159, -0.035741, -0.027433, -0.019942, -0.017426, -0.017539, -0.021108, -0.023822, -0.030146, -0.039808, -0.034314, -0.035983, -0.034164, -0.027282, -0.026640, -0.028065, -0.033722, -0.031477, -0.036804, -0.040386, -0.041432, -0.026967, -0.026209, -0.025556, -0.020185, -0.031020, -0.027078, -0.032395, -0.038901, -0.037661, -0.051311, -0.055230, -0.064808, -0.073690
-0.109781, -0.102966, -0.091678, -0.078936, -0.072842, -0.061586, -0.054412, -0.040276, -0.032622, -0.022759, -0.022592, -0.021772, -0.022064, -0.031338, -0.037294, -0.043694, -0.045492, -0.039524, -0.044207, -0.032775, -0.033151, -0.030196, -0.039805, -0.038785, -0.040552, -0.047416, -0.048586, -0.033478, -0.038540, -0.037205, -0.045778, -0.042929, -0.046606, -0.045946, -0.053937, -0.056048, -0.066220, -0.077054, -0.079121, -0.088264
-0.130017, -0.113689, -0.103865, -0.094000, -0.084712, -0.071733, -0.049067, -0.040691, -0.037994, -0.029169, -0.024861, -0.028318, -0.023500, -0.028381, -0.037437, -0.039900, -0.040860, -0.036216, -0.040189, -0.039022, -0.030940, -0.044257, -0.033352, -0.049796, -0.046699, -0.043870, -0.047227, -0.044222, -0.048973, -0.043424, -0.049824, -0.053754, -0.057571, -0.059193, -0.070246, -0.072950, -0.083870, -0.089963, -0.095079, -0.100881
-0.136173, -0.127824, -0.112754, -0.097962, -0.091519, -0.078971, -0.065505, -0.057312, -0.047929, -0.042698, -0.044013, -0.045591, -0.042365, -0.046394, -0.052514, -0.056141, -0.052592, -0.049603, -0.049539, -0.044201, -0.046337, -0.042604, -0.052491, -0.048705, -0.054125, -0.053786, -0.056419, -0.057488, -0.054215, -0.060097, -0.055616, -0.069619, -0.068816, -0.079310, -0.080668, -0.081680, -0.096842, -0.104473, -0.110500, -0.119418
-0.148407, -0.137383, -0.117250, -0.112763, -0.098828, -0.084003, -0.068268, -0.058491, -0.050106, -0.043882, -0.041249, -0.038558, -0.042852, -0.039674, -0.049907, -0.052883, -0.043517, -0.042425, -0.044586, -0.045502, -0.042207, -0.048397, -0.043561, -0.047361, -0.050170, -0.048362, -0.046453, -0.052525, -0.064207, -0.055664, -0.065054, -0.061975, -0.068999, -0.074391, -0.077836, -0.085115, -0.096535, -0.103506, -0.117879, -0.124113
-0.142123, -0.133963, -0.125566, -0.109398, -0.098895, -0.087919, -0.071198, -0.062588, -0.059798, -0.050626, -0.043945, -0.044141, -0.039378, -0.044508, -0.055286, -0.052721, -0.051783, -0.042440, -0.046097, -0.040788, -0.046150, -0.046896, -0.047536, -0.050246, -0.049313, -0.052704, -0.045341, -0.056265, -0.061130, -0.056550, -0.068426, -0.061054, -0.077430, -0.073394, -0.082501, -0.087429, -0.098190, -0.105914, -0.121948, -0.130352
-0.148542, -0.140171, -0.125457, -0.123653, -0.104122, -0.087784, -0.069260, -0.064985, -0.048293, -0.048545, -0.042363, -0.040130, -0.034426, -0.031431, -0.036403, -0.040717, -0.040057, -0.042884, -0.041572, -0.047893, -0.041177, -0.050342, -0.045359, -0.052644, -0.051350, -0.048771, -0.049269, -0.049448, -0.049501, -0.054975, -0.051294, -0.057256, -0.062142, -0.060720, -0.076065, -0.085631, -0.091526, -0.098766, -0.115561, -0.126895
-0.142879, -0.136887, -0.122112, -0.109622, -0.102909, -0.083465, -0.075626, -0.060243, -0.051923, -0.048596, -0.041197, -0.032058, -0.031226, -0.035655, -0.043679, -0.047009, -0.049987, -0.051159, -0.052074, -0.049547, -0.051100, -0.052763, -0.054488, -0.057575, -0.046670, -0.051837, -0.045605, -0.055429, -0.047805, -0.056702, -0.061002, -0.065944, -0.071409, -0.070030, -0.076648, -0.086154, -0.098066, -0.109250, -0.123732, -0.134529
-0.145242, -0.137831, -0.117733, -0.112233, -0.101378, -0.083234, -0.070852, -0.061614, -0.046133, -0.043230, -0.034194, -0.036813, -0.035993, -0.035460, -0.049225, -0.041057, -0.046374, -0.047064, -0.048223, -0.048399, -0.044915, -0.044874, -0.048295, -0.047451, -0.044248, -0.048177, -0.042961, -0.053931, -0.053262, -0.050189, -0.055081, -0.054368, -0.057840, -0.064945, -0.069684, -0.084417, -0.091170, -0.101255, -0.110388, -0.125763
-0.141766, -0.131529, -0.113521, -0.104443, -0.092846, -0.081918, -0.072197, -0.058292, -0.048348, -0.042317, -0.038812, -0.046647, -0.042491, -0.040098, -0.045063, -0.037155, -0.043813, -0.040321, -0.040450, -0.040998, -0.031647, -0.037560, -0.036830, -0.047915, -0.040610, -0.044161, -0.043599, -0.051052, -0.053613, -0.053338, -0.057911, -0.053934, -0.061516, -0.064348, -0.075661, -0.082207, -0.097820, -0.111577, -0.117542, -0.130992
-0.143229, -0.134745, -0.120542, -0.108766, -0.095525, -0.081827, -0.066209, -0.051907, -0.041773, -0.039345, -0.038347, -0.042756, -0.045907, -0.036299, -0.035985, -0.038592, -0.031677, -0.035069, -0.036571, -0.031422, -0.030160, -0.030062, -0.036969, -0.039049, -0.038392, -0.040255, -0.041739, -0.043937, -0.054617, -0.054842, -0.057435, -0.054261, -0.052880, -0.062797, -0.068960, -0.080180, -0.097721, -0.105749, -0.117528, -0.130231
-0.142717, -0.132844, -0.118339, -0.099852, -0.087564, -0.074540, -0.060555, -0.063317, -0.042639, -0.036647, -0.036484, -0.044721, -0.043828, -0.034604, -0.041367, -0.039394, -0.040234, -0.032032, -0.034575, -0.029697, -0.030618, -0.027718, -0.027701, -0.034473, -0.026211, -0.038566, -0.033026, -0.042458, -0.048376, -0.054907, -0.056370, -0.056608, -0.063929, -0.066574, -0.076786, -0.087172, -0.105015, -0.118436, -0.130919, -0.143431
-0.142243, -0.127826, -0.108977, -0.102291, -0.084912, -0.075221, -0.064803, -0.054600, -0.042369, -0.031708, -0.027693, -0.033964, -0.034351, -0.028000, -0.033180, -0.021945, -0.030874, -0.025415, -0.025503, -0.019591, -0.023795, -0.021542, -0.028067, -0.017516, -0.023369, -0.022817, -0.025996, -0.038556, -0.042563, -0.050594, -0.050035, -0.051434, -0.056272, -0.064052, -0.074741, -0.092408, -0.102419, -0.112093, -0.126750, -0.140980
-0.143292, -0.127578, -0.112085, -0.096045, -0.085233, -0.071441, -0.056742, -0.051795, -0.052718, -0.031777, -0.031944, -0.036246, -0.025718, -0.029490, -0.025273, -0.026374, -0.023381, -0.026894, -0.010251, -0.013891, -0.007423, -0.011167, -0.013681, -0.010517, -0.019920, -0.017554, -0.028737, -0.038903, -0.049214, -0.050491, -0.055588, -0.055169, -0.068512, -0.079098, -0.084490, -0.098655, -0.108083, -0.117337, -0.138473, -0.147820
-0.157691, -0.138948, -0.121902, -0.107238, -0.093518, -0.076925, -0.061555, -0.054267, -0.044094, -0.035429, -0.024886, -0.028781, -0.015470, -0.020190, -0.016234, -0.013087, -0.014073, -0.008567, -0.002643, -0.000727, -0.001380, 0.004200, -0.005120, -0.004700, -0.001854, -0.011976, -0.017061, -0.029542, -0.038822, -0.045711, -0.052735, -0.059099, -0.053620, -0.072406, -0.081947, -0.089309, -0.106151, -0.116396, -0.126931, -0.140595
-0.161066, -0.148106, -0.131332, -0.115860, -0.096614, -0.075598, -0.063729, -0.056040, -0.043045, -0.034527, -0.029302, -0.024942, -0.024131, -0.014142, -0.018292, -0.014417, -0.000371, -0.005596, 0.000054, 0.007287, 0.003707, 0.005573, 0.002407, -0.004032, -0.004296, -0.015505, -0.027972, -0.031577, -0.049724, -0.054087, -0.057075, -0.066158, -0.072001, -0.078872, -0.095705, -0.102224, -0.107986, -0.125552, -0.144074, -0.155713
-0.161770, -0.146927, -0.132682, -0.118662, -0.101027, -0.075641, -0.058551, -0.051786, -0.032134, -0.023342, -0.023484, -0.019476, -0.008228, -0.006091, -0.002516, -0.000549, 0.004567, 0.010575, 0.008347, 0.015799, 0.014618, 0.013303, 0.010051, 0.008941, 0.002665, 0.000378, -0.014913, -0.025195, -0.037791, -0.041054, -0.047983, -0.057830, -0.062858, -0.068277, -0.085972, -0.090944, -0.100302, -0.116633, -0.132306, -0.149218
-0.157331, -0.148104, -0.126898, -0.107516, -0.090225, -0.074798, -0.055607, -0.049395, -0.038086, -0.027087, -0.022276, -0.017701, -0.012106, -0.009366, -0.005585, -0.002933, 0.008415, 0.005420, 0.016745, 0.015099, 0.024175, 0.012965, 0.008969, 0.009464, -0.003087, -0.008987, -0.014670, -0.029272, -0.036053, -0.043702, -0.059302, -0.055073, -0.069686, -0.085032, -0.085440, -0.096769, -0.116466, -0.123301, -0.139940, -0.150561
-0.163726, -0.147213, -0.124236, -0.109557, -0.091312, -0.071663, -0.061257, -0.042420, -0.035019, -0.026856, -0.013893, -0.011389, -0.000321, 0.004288, 0.003229, 0.012159, 0.016677, 0.017625, 0.017327, 0.023616, 0.016867, 0.026491, 0.019088, 0.015923, 0.014232, 0.003014, -0.009956, -0.018372, -0.028397, -0.042398, -0.045371, -0.050009, -0.057606, -0.070114, -0.081858, -0.090768, -0.099109, -0.113893, -0.130374, -0.144075
-0.176563, -0.159584, -0.138437, -0.121810, -0.100680, -0.083903, -0.066482, -0.058677, -0.046862, -0.034790, -0.031497, -0.017911, -0.009646, -0.006108, 0.004878, 0.007445, 0.019082, 0.013271, 0.012750, 0.015598, 0.024531, 0.020530, 0.018072, 0.013369, 0.000707, -0.002648, -0.018259, -0.028115, -0.039486, -0.053939, -0.064631, -0.060736, -0.070288, -0.076150, -0.093867, -0.111913, -0.124983, -0.128848, -0.150861, -0.153125
-0.177423, -0.159979, -0.141597, -0.127927, -0.111721, -0.090287, -0.072669, -0.058398, -0.046900, -0.037350, -0.022533, -0.013604, 0.000429, 0.002282, 0.019868, 0.020236, 0.020564, 0.024548, 0.022305, 0.029570, 0.023641, 0.031001, 0.027813, 0.023310, 0.015059, 0.007859, -0.003597, -0.020619, -0.028524, -0.040421, -0.057904, -0.057882, -0.063612, -0.078410, -0.089647, -0.100380, -0.116602, -0.127115, -0.144839, -0.156967
-0.192792, -0.178227, -0.156368, -0.144862, -0.126305, -0.103402, -0.086762, -0.067475, -0.049829, -0.041091, -0.032086, -0.016509, -0.005415, -0.002886, 0.008007, 0.021121, 0.018182, 0.030122, 0.029148, 0.033840, 0.040301, 0.026647, 0.031109, 0.023861, 0.016278, 0.003576, -0.013296, -0.025311, -0.039234, -0.049955, -0.060997, -0.075229, -0.083187, -0.087913, -0.106468, -0.118823, -0.131272, -0.141769, -0.164630, -0.171625
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh 80C]
version = 1
points =
0.014716, 0.018905, 0.022130, 0.021657, 0.022575, 0.016651, 0.012903, 0.008000, -0.000454, -0.010089, -0.017357, -0.032627, -0.041369, -0.047192, -0.052608, -0.063295, -0.063191, -0.061223, -0.070392, -0.066938, -0.061376, -0.069617, -0.063341, -0.055582, -0.051602, -0.051721, -0.056805, -0.044266, -0.044092, -0.042936, -0.036539, -0.025426, -0.021289, -0.010471, -0.000529, -0.000706, -0.000053, 0.002008, 0.001249, 0.004486
0.003644, 0.007263, 0.007426, 0.006504, 0.004287, 0.006732, 0.006525, -0.008166, -0.009803, -0.009325, -0.027590, -0.036452, -0.043088, -0.050327, -0.055910, -0.066707, -0.054789, -0.063406, -0.070651, -0.055135, -0.056944, -0.062823, -0.058690, -0.051527, -0.056532, -0.050824, -0.041787, -0.052851, -0.042124, -0.031219, -0.034750, -0.028072, -0.013276, -0.009052, -0.003244, -0.001540, 0.002006, 0.000418, -0.000012, -0.005310
0.002850, 0.008392, 0.013026, 0.015288, 0.018943, 0.017617, 0.019218, 0.007562, 0.002286, 0.003136, -0.008217, -0.013489, -0.020501, -0.032757, -0.037171, -0.036230, -0.045487, -0.040095, -0.045625, -0.040415, -0.039895, -0.037086, -0.041172, -0.037509, -0.036753, -0.035902, -0.031374, -0.031702, -0.026967, -0.022375, -0.019933, -0.009980, -0.002361, 0.002561, 0.005248, 0.007815, 0.011755, 0.007544, 0.004417, 0.003121
-0.001141, 0.000514, 0.007621, 0.014050, 0.014791, 0.007605, 0.017034, 0.010894, 0.003727, 0.001980, -0.006087, -0.011110, -0.029108, -0.030064, -0.031688, -0.039354, -0.040396, -0.034471, -0.038189, -0.031446, -0.027691, -0.029578, -0.031392, -0.026206, -0.029147, -0.028238, -0.018988, -0.026758, -0.021195, -0.010572, -0.014147, -0.007288, 0.009163, 0.008262, 0.008652, 0.011189, 0.009535, 0.006602, 0.010021, 0.005173
0.002640, 0.002954, 0.009052, 0.012505, 0.017776, 0.025521, 0.025298, 0.021745, 0.015984, 0.013896, 0.008478, 0.002557, -0.006036, -0.015655, -0.017801, -0.011750, -0.017693, -0.025293, -0.019257, -0.013280, -0.013119, -0.007545, -0.012287, -0.004823, -0.006433, -0.013515, -0.008502, -0.006654, -0.012181, -0.001602, 0.004339, 0.006295, 0.014176, 0.022187, 0.020665, 0.014033, 0.012083, 0.012726, 0.011645, 0.005386
-0.015700, -0.009344, -0.003137, 0.006278, 0.008049, 0.016966, 0.024723, 0.015057, 0.016107, 0.013613, 0.005391, -0.001878, -0.003443, -0.007336, -0.010694, -0.012487, -0.008496, -0.022715, -0.014490, -0.007543, -0.006589, -0.011383, -0.005191, 0.000149, -0.006063, -0.000264, -0.004796, -0.002074, 0.007011, 0.004411, 0.009173, 0.017082, 0.018268, 0.022690, 0.021899, 0.019556, 0.016689, 0.009959, 0.013010, 0.004035
-0.023422, -0.017486, -0.006784, 0.000336, 0.006756, 0.014970, 0.019967, 0.023124, 0.017179, 0.013403, 0.012598, 0.003743, 0.006304, 0.001260, -0.003838, -0.003741, -0.003462, -0.011483, -0.007378, -0.006617, -0.004080, 0.002756, 0.002303, 0.001816, 0.002910, 0.002382, 0.008108, 0.000082, 0.004324, 0.004791, 0.006561, 0.018032, 0.019677, 0.020122, 0.018496, 0.014773, 0.012800, 0.011059, 0.007163, 0.003640
-0.036192, -0.029401, -0.018701, -0.004195, 0.004025, 0.004211, 0.012815, 0.014576, 0.009539, 0.009801, 0.002291, -0.001030, 0.002026, -0.003435, -0.003398, -0.008373, -0.011758, -0.010027, -0.010937, -0.009340, 0.002131, -0.002689, -0.006455, 0.001206, 0.000097, -0.000007, 0.006733, 0.002998, 0.007065, 0.001654, 0.014122, 0.019928, 0.020106, 0.020136, 0.020849, 0.016075, 0.013752, 0.005720, 0.003635, -0.004602
-0.038800, -0.029286, -0.019241, -0.013745, 0.003260, 0.014599, 0.021623, 0.021593, 0.016239, 0.014292, 0.012519, 0.014037, 0.008938, 0.004941, 0.001919, 0.000339, -0.002788, -0.006986, -0.003200, -0.001893, 0.010944, 0.005153, 0.003706, 0.012013, 0.017621, 0.006993, 0.003464, 0.012339, 0.005098, 0.014120, 0.024693, 0.021901, 0.024392, 0.029698, 0.024619, 0.023926, 0.017386, 0.010235, 0.003348, 0.000304
-0.053563, -0.039250, -0.024235, -0.022109, -0.005264, 0.007541, 0.009399, 0.008181, 0.011273, 0.009116, 0.006308, 0.005348, 0.004668, -0.001764, -0.002088, -0.007688, -0.016701, -0.007625, -0.019264, 0.000855, 0.003487, -0.003664, -0.004026, 0.011153, 0.005425, 0.016491, 0.017588, 0.009862, 0.023317, 0.018293, 0.024929, 0.028068, 0.026455, 0.028053, 0.033105, 0.028316, 0.018615, 0.015048, 0.006555, -0.002737
-0.058380, -0.052341, -0.037568, -0.027521, -0.014649, -0.000990, 0.002068, 0.007148, 0.009107, 0.004148, 0.005334, 0.006934, 0.000002, -0.001766, -0.003343, -0.011705, -0.015828, -0.017576, -0.014243, -0.010099, -0.000500, -0.001848, -0.003831, 0.012162, 0.007440, 0.017413, 0.030827, 0.015730, 0.017118, 0.021675, 0.018111, 0.022598, 0.027051, 0.020651, 0.023612, 0.021771, 0.008938, 0.004431, -0.003085, -0.007981
-0.073342, -0.062562, -0.045204, -0.041477, -0.024874, -0.017175, -0.011007, -0.008277, -0.007123, -0.000270, -0.009293, -0.008444, -0.009256, -0.009285, -0.003933, -0.011514, -0.026828, -0.026670, -0.024705, -0.017354, -0.012245, -0.011513, -0.004511, -0.007872, 0.002254, 0.027400, 0.025259, 0.018650, 0.015367, 0.009562, 0.016613, 0.017929, 0.020322, 0.021837, 0.015036, 0.010812, 0.001733, -0.006874, -0.014802, -0.025875
-0.078136, -0.064488, -0.050701, -0.045776, -0.031305, -0.018143, -0.010284, -0.005345, -0.006107, 0.001100, -0.003722, -0.005008, -0.005063, -0.013788, -0.005262, -0.014691, -0.017776, -0.020362, -0.026831, -0.020245, -0.013116, -0.002514, -0.016305, -0.003235, -0.015515, -0.002504, 0.003924, -0.006162, 0.012421, 0.003384, 0.011207, 0.015858, 0.011833, 0.018216, 0.014945, 0.005020, -0.002828, -0.011582, -0.022140, -0.025973
-0.083270, -0.068941, -0.058998, -0.046873, -0.038565, -0.024122, -0.018703, -0.015703, -0.010744, -0.003023, -0.005232, -0.005735, -0.008045, -0.015315, -0.018230, -0.021917, -0.026121, -0.026201, -0.030411, -0.019144, -0.015575, -0.018722, -0.017786, -0.010587, -0.011065, -0.008381, -0.002389, -0.005699, 0.000644, 0.008432, 0.001634, 0.009898, 0.006093, 0.009692, 0.012479, 0.004412, -0.009274, -0.022969, -0.029094, -0.042201
-0.085832, -0.077231, -0.064109, -0.053252, -0.041125, -0.025964, -0.015882, -0.008664, -0.006862, -0.000797, 0.001569, 0.003995, -0.001047, -0.006835, -0.016703, -0.016518, -0.020389, -0.027987, -0.023917, -0.020757, -0.013899, -0.015836, -0.019446, -0.023046, -0.017757, -0.007725, -0.007741, -0.000598, 0.000056, 0.004475, 0.004828, 0.009970, 0.008371, 0.012026, -0.000372, -0.005340, -0.007786, -0.020974, -0.031188, -0.044115
-0.102544, -0.092665, -0.073164, -0.064770, -0.051202, -0.043750, -0.033981, -0.029325, -0.020154, -0.013960, -0.014977, -0.021754, -0.015910, -0.019041, -0.028487, -0.020956, -0.026074, -0.022448, -0.019786, -0.018986, -0.014926, -0.021484, -0.018005, -0.027720, -0.015854, -0.022109, -0.008885, -0.004168, -0.007627, 0.003074, -0.005659, -0.003173, -0.003861, -0.004075, -0.009571, -0.016267, -0.024078, -0.029423, -0.042872, -0.058538
-0.105554, -0.093090, -0.081851, -0.073346, -0.060013, -0.043209, -0.033178, -0.018129, -0.016926, -0.013935, -0.009025, -0.019463, -0.011720, -0.018931, -0.016113, -0.023431, -0.021047, -0.024704, -0.016201, -0.017424, -0.014246, -0.024487, -0.020554, -0.015038, -0.016248, -0.018052, -0.020241, -0.014420, -0.014688, -0.006758, -0.010540, -0.012931, -0.012046, -0.016090, -0.019370, -0.024888, -0.038703, -0.044262, -0.053309, -0.073324
-0.102533, -0.092944, -0.080324, -0.065748, -0.063323, -0.050155, -0.037839, -0.026521, -0.023352, -0.008307, -0.012682, -0.018916, -0.014872, -0.011758, -0.019334, -0.022047, -0.024636, -0.023748, -0.016457, -0.016263, -0.013425, -0.017807, -0.009974, -0.010215, -0.007714, -0.020671, -0.017900, -0.014968, -0.013082, -0.010130, -0.005460, -0.016018, -0.008864, -0.019561, -0.022135, -0.028540, -0.041548, -0.054343, -0.061863, -0.075439
-0.109519, -0.097617, -0.084881, -0.075175, -0.062703, -0.049101, -0.029230, -0.026245, -0.013521, -0.006194, -0.000586, -0.001362, -0.001805, -0.005275, -0.008417, -0.019518, -0.011584, -0.014768, -0.016921, -0.004129, -0.007413, -0.002994, -0.009227, -0.011903, -0.020744, -0.018597, -0.021947, -0.003403, -0.010522, -0.002862, -0.006462, -0.013889, -0.012058, -0.021369, -0.026415, -0.028316, -0.045223, -0.050379, -0.064065, -0.076175
-0.114982, -0.103596, -0.089375, -0.074962, -0.066622, -0.053905, -0.043285, -0.030981, -0.020098, -0.008769, -0.008149, -0.006966, -0.002970, -0.014506, -0.017842, -0.025272, -0.020734, -0.019500, -0.017828, -0.007856, -0.003907, -0.005062, -0.018248, -0.012391, -0.025685, -0.026889, -0.030557, -0.015159, -0.019359, -0.020340, -0.027373, -0.030821, -0.032788, -0.037291, -0.044161, -0.048894, -0.059748, -0.070114, -0.078457, -0.087723
-0.134719, -0.114677, -0.101787, -0.090757, -0.079667, -0.065034, -0.040259, -0.031757, -0.025437, -0.014165, -0.009774, -0.011821, -0.006247, -0.010432, -0.017449, -0.019823, -0.022749, -0.019791, -0.012517, -0.016386, -0.008593, -0.021524, -0.010610, -0.028035, -0.024718, -0.023540, -0.026031, -0.025054, -0.029929, -0.026632, -0.033179, -0.039199, -0.046523, -0.047158, -0.062288, -0.065127, -0.079019, -0.085771, -0.097495, -0.106560
-0.138939, -0.128780, -0.111983, -0.095212, -0.087303, -0.071161, -0.057468, -0.046865, -0.038466, -0.028353, -0.028507, -0.029713, -0.023724, -0.026267, -0.032102, -0.034490, -0.031144, -0.026806, -0.028768, -0.021267, -0.024675, -0.017998, -0.027684, -0.029675, -0.031084, -0.039156, -0.035935, -0.038292, -0.036473, -0.041926, -0.043090, -0.058419, -0.056924, -0.067709, -0.070746, -0.077496, -0.094337, -0.100427, -0.111912, -0.122281
-0.152504, -0.137941, -0.119723, -0.110753, -0.094274, -0.077271, -0.060698, -0.048738, -0.039031, -0.030275, -0.025434, -0.024488, -0.022846, -0.022341, -0.028565, -0.028598, -0.027824, -0.017346, -0.026218, -0.019615, -0.023889, -0.025794, -0.015156, -0.034636, -0.025281, -0.025814, -0.029078, -0.030713, -0.044046, -0.038346, -0.048656, -0.050027, -0.054211, -0.063247, -0.069468, -0.078547, -0.091837, -0.100691, -0.109948, -0.124609
-0.146518, -0.135499, -0.123102, -0.105325, -0.090115, -0.080689, -0.060363, -0.049737, -0.045319, -0.032343, -0.025814, -0.025045, -0.022494, -0.026834, -0.036990, -0.035204, -0.029348, -0.025274, -0.025006, -0.019839, -0.018487, -0.024260, -0.019748, -0.027255, -0.027227, -0.026291, -0.023260, -0.033852, -0.038565, -0.038454, -0.049966, -0.046177, -0.060812, -0.066586, -0.069093, -0.081949, -0.094800, -0.102458, -0.118103, -0.131361
-0.151260, -0.140747, -0.124607, -0.118399, -0.097615, -0.081759, -0.061422, -0.054578, -0.038324, -0.036061, -0.025866, -0.024198, -0.018762, -0.015509, -0.014710, -0.024920, -0.018765, -0.022234, -0.021037, -0.025439, -0.020954, -0.024693, -0.025920, -0.030341, -0.026361, -0.029295, -0.028394, -0.031077, -0.034491, -0.035912, -0.039394, -0.042810, -0.051468, -0.054812, -0.068722, -0.079790, -0.089149, -0.096825, -0.113430, -0.127073
-0.145886, -0.135368, -0.119421, -0.105990, -0.094400, -0.073752, -0.063954, -0.049194, -0.037503, -0.033239, -0.021610, -0.013675, -0.016263, -0.014384, -0.023814, -0.024941, -0.026762, -0.029435, -0.026505, -0.027814, -0.029139, -0.026253, -0.032990, -0.032784, -0.025493, -0.029449, -0.026163, -0.038077, -0.026925, -0.039846, -0.043902, -0.052270, -0.056862, -0.061369, -0.066508, -0.081817, -0.093954, -0.105577, -0.122624, -0.135042
-0.147915, -0.138329, -0.119625, -0.108278, -0.097571, -0.077034, -0.064483, -0.051097, -0.035064, -0.029597, -0.021101, -0.021770, -0.019127, -0.019632, -0.032314, -0.023335, -0.028646, -0.027049, -0.027558, -0.027010, -0.024330, -0.023423, -0.022452, -0.030062, -0.024119, -0.023657, -0.027256, -0.034388, -0.035836, -0.035411, -0.042965, -0.047033, -0.048098, -0.055227, -0.065979, -0.081604, -0.084134, -0.099232, -0.116439, -0.131656
-0.142801, -0.129540, -0.112330, -0.099829, -0.084164, -0.073359, -0.060205, -0.047571, -0.034759, -0.025635, -0.022801, -0.028969, -0.025607, -0.021371, -0.022284, -0.019469, -0.017456, -0.019692, -0.015899, -0.017163, -0.007430, -0.016339, -0.015127, -0.023952, -0.019661, -0.021439, -0.028810, -0.035042, -0.035397, -0.039697, -0.042452, -0.041018, -0.050269, -0.056914, -0.067479, -0.078543, -0.094244, -0.107848, -0.120335, -0.135787
-0.153316, -0.139130, -0.122844, -0.111431, -0.092042, -0.074405, -0.060167, -0.046000, -0.032213, -0.027186, -0.026683, -0.029203, -0.028507, -0.018427, -0.015013, -0.017465, -0.011388, -0.014620, -0.013670, -0.009261, -0.010932, -0.011597, -0.014995, -0.015158, -0.018332, -0.020046, -0.023309, -0.028356, -0.036656, -0.041843, -0.046931, -0.043813, -0.045336, -0.050812, -0.064313, -0.076904, -0.095759, -0.107648, -0.120723, -0.136882
-0.147656, -0.134011, -0.116974, -0.096654, -0.082928, -0.070839, -0.053277, -0.052405, -0.033256, -0.023068, -0.020610, -0.028263, -0.024454, -0.013315, -0.019944, -0.018990, -0.015243, -0.007947, -0.010828, -0.002644, -0.008317, -0.003621, -0.003297, -0.009846, -0.003823, -0.016788, -0.013081, -0.024902, -0.033005, -0.040283, -0.039125, -0.044847, -0.048848, -0.062053, -0.070114, -0.085844, -0.101699, -0.121406, -0.133415, -0.146519
-0.147847, -0.129364, -0.110242, -0.098814, -0.079473, -0.065484, -0.054268, -0.039699, -0.027094, -0.017037, -0.008735, -0.013786, -0.010384, -0.006268, -0.008301, 0.001786, -0.005110, 0.002126, 0.004001, 0.005308, 0.007012, 0.005567, 0.002654, 0.011305, 0.000800, 0.004577, -0.004710, -0.016622, -0.019191, -0.028227, -0.034350, -0.035644, -0.044765, -0.053943, -0.065566, -0.087176, -0.098796, -0.108957, -0.125010, -0.143202
-0.148311, -0.129530, -0.111627, -0.095413, -0.078435, -0.065168, -0.049414, -0.041925, -0.038237, -0.018036, -0.015057, -0.016618, -0.006841, -0.006192, -0.003922, -0.002084, -0.000728, -0.004115, 0.015236, 0.009468, 0.017848, 0.011779, 0.014671, 0.011023, 0.006096, 0.000304, -0.007624, -0.018456, -0.027303, -0.035545, -0.038845, -0.047164, -0.054144, -0.069641, -0.073423, -0.095228, -0.105020, -0.116771, -0.140044, -0.152540
-0.161344, -0.140468, -0.119230, -0.104951, -0.087837, -0.068613, -0.051838, -0.042822, -0.030394, -0.021004, -0.009799, -0.012061, 0.002389, 0.000950, 0.005374, 0.002660, 0.008258, 0.015993, 0.018934, 0.026378, 0.024797, 0.029036, 0.016215, 0.022294, 0.014359, 0.007608, 0.004533, -0.013461, -0.017709, -0.028934, -0.038274, -0.046629, -0.046043, -0.064101, -0.074701, -0.085165, -0.102305, -0.115551, -0.129513, -0.145614
-0.164011, -0.151878, -0.131263, -0.116048, -0.093663, -0.069313, -0.058982, -0.049790, -0.032107, -0.023453, -0.016759, -0.009597, -0.004755, 0.002046, 0.002094, 0.009494, 0.017329, 0.022213, 0.022269, 0.028923, 0.027525, 0.027750, 0.026968, 0.018618, 0.017741, 0.003494, -0.007991, -0.013214, -0.029128, -0.039281, -0.044017, -0.056036, -0.060154, -0.072686, -0.085740, -0.098275, -0.105208, -0.127390, -0.145659, -0.159976
-0.173269, -0.153868, -0.137921, -0.122237, -0.103107, -0.076628, -0.059067, -0.047452, -0.024776, -0.017426, -0.012021, -0.007690, 0.006957, 0.009699, 0.012665, 0.015294, 0.022122, 0.033493, 0.026769, 0.039118, 0.036815, 0.034208, 0.024411, 0.029535, 0.021962, 0.016597, -0.001492, -0.012554, -0.024036, -0.032736, -0.037850, -0.048167, -0.057912, -0.064077, -0.085080, -0.092333, -0.101916, -0.121054, -0.137447, -0.155636
-0.169127, -0.156482, -0.131042, -0.110355, -0.092212, -0.073337, -0.052259, -0.043791, -0.031612, -0.017806, -0.010129, -0.005910, -0.001653, 0.008936, 0.008769, 0.015636, 0.028749, 0.021665, 0.037365, 0.034439, 0.042659, 0.034818, 0.027185, 0.027465, 0.016793, 0.009079, 0.002464, -0.016090, -0.019292, -0.031901, -0.050462, -0.048057, -0.062397, -0.079005, -0.082535, -0.096149, -0.117908, -0.127236, -0.144318, -0.157413
-0.175939, -0.155520, -0.130809, -0.112179, -0.092228, -0.070571, -0.059239, -0.040038, -0.031739, -0.020000, -0.001880, 0.000826, 0.010385, 0.017510, 0.019764, 0.026188, 0.030171, 0.036594, 0.036017, 0.040583, 0.039507, 0.044684, 0.033628, 0.037057, 0.026366, 0.017439, 0.007821, -0.004033, -0.017111, -0.028727, -0.036893, -0.046335, -0.053221, -0.068344, -0.081981, -0.093159, -0.105425, -0.120653, -0.138111, -0.153921
-0.183850, -0.169050, -0.144929, -0.123223, -0.103438, -0.083231, -0.064112, -0.056125, -0.040390, -0.025147, -0.022784, -0.007482, 0.002267, 0.002721, 0.022171, 0.023900, 0.025798, 0.034433, 0.027514, 0.036866, 0.045636, 0.035314, 0.034978, 0.028699, 0.015783, 0.012858, -0.003312, -0.014363, -0.028016, -0.044834, -0.054204, -0.055255, -0.063675, -0.075276, -0.091861, -0.115019, -0.127226, -0.133464, -0.156106, -0.161755
-0.189656, -0.170829, -0.150002, -0.134181, -0.115262, -0.090769, -0.072914, -0.056688, -0.040596, -0.028351, -0.014975, -0.002618, 0.009975, 0.016009, 0.031774, 0.032892, 0.033502, 0.042420, 0.037935, 0.046700, 0.038499, 0.047628, 0.042669, 0.037316, 0.030814, 0.019172, 0.009945, -0.008587, -0.022260, -0.027583, -0.049224, -0.060101, -0.057784, -0.076992, -0.095323, -0.103057, -0.118559, -0.134440, -0.147562, -0.166494
-0.200519, -0.182546, -0.161147, -0.147143, -0.128708, -0.101681, -0.083034, -0.064714, -0.042170, -0.030891, -0.023510, -0.006997, 0.009600, 0.013200, 0.022601, 0.036959, 0.035694, 0.047306, 0.045521, 0.051201, 0.060493, 0.044020, 0.051799, 0.040091, 0.031153, 0.018588, 0.002504, -0.012693, -0.029034, -0.038284, -0.050370, -0.068237, -0.077021, -0.086249, -0.104358, -0.120061, -0.132896, -0.144890, -0.170504, -0.181261
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh 110C]
version = 1
points =
0.017601, 0.023657, 0.031301, 0.037088, 0.040271, 0.038013, 0.040663, 0.035902, 0.030789, 0.025849, 0.021022, 0.006714, -0.001628, -0.004383, -0.008860, -0.021505, -0.017761, -0.014027, -0.024237, -0.018960, -0.012020, -0.021969, -0.014846, -0.008982, -0.008352, -0.005195, -0.015184, -0.002549, -0.001564, -0.004080, 0.000630, 0.012339, 0.011327, 0.023171, 0.027435, 0.021915, 0.019800, 0.017212, 0.012105, 0.010930
0.007781, 0.013596, 0.021243, 0.025837, 0.026983, 0.033377, 0.036959, 0.024644, 0.024456, 0.029908, 0.013461, 0.005003, 0.003555, -0.004270, -0.012939, -0.015245, -0.008934, -0.016573, -0.016790, -0.005662, -0.006684, -0.009731, -0.011215, -0.004167, -0.006716, -0.003945, 0.000689, -0.005382, 0.000258, 0.009328, 0.002408, 0.009794, 0.018544, 0.020888, 0.023812, 0.020835, 0.023078, 0.015239, 0.012622, 0.001381
0.006149, 0.015871, 0.024380, 0.034448, 0.038707, 0.045213, 0.046422, 0.040535, 0.037748, 0.042194, 0.035215, 0.029505, 0.024365, 0.015163, 0.011191, 0.011279, 0.004898, 0.012500, 0.004527, 0.010456, 0.014662, 0.014805, 0.012139, 0.012714, 0.012206, 0.015282, 0.016566, 0.017598, 0.019939, 0.020890, 0.021529, 0.032875, 0.035803, 0.035002, 0.036027, 0.035495, 0.031240, 0.024500, 0.017577, 0.011361
0.000510, 0.009436, 0.021393, 0.030510, 0.035255, 0.037599, 0.047714, 0.042497, 0.040575, 0.040459, 0.037248, 0.031280, 0.020065, 0.019417, 0.018140, 0.013035, 0.013219, 0.017940, 0.016281, 0.021703, 0.025484, 0.024636, 0.017570, 0.024611, 0.022182, 0.021729, 0.028892, 0.020567, 0.024789, 0.033268, 0.026944, 0.032691, 0.044747, 0.040752, 0.039306, 0.036676, 0.029942, 0.022683, 0.023414, 0.012505
0.001286, 0.009072, 0.018029, 0.029754, 0.039935, 0.051108, 0.053271, 0.053138, 0.050918, 0.050934, 0.050108, 0.044189, 0.039771, 0.033091, 0.031640, 0.037520, 0.034494, 0.028066, 0.031237, 0.036319, 0.037234, 0.045248, 0.039160, 0.046136, 0.041126, 0.037322, 0.037408, 0.042179, 0.033091, 0.040041, 0.047495, 0.045555, 0.047062, 0.054652, 0.048647, 0.039235, 0.034006, 0.032386, 0.024944, 0.014260
-0.016481, -0.005739, 0.008590, 0.019522, 0.026830, 0.038712, 0.050196, 0.045062, 0.049547, 0.048198, 0.043118, 0.038479, 0.037975, 0.035880, 0.034056, 0.032547, 0.040120, 0.027091, 0.033356, 0.039974, 0.041248, 0.035941, 0.043986, 0.047734, 0.040691, 0.044827, 0.041816, 0.041881, 0.046284, 0.045376, 0.049399, 0.051629, 0.052668, 0.051926, 0.049274, 0.041425, 0.034940, 0.024646, 0.022586, 0.008066
-0.027637, -0.015869, -0.000104, 0.013734, 0.024930, 0.038278, 0.044619, 0.048752, 0.046410, 0.046352, 0.051359, 0.041118, 0.046460, 0.045349, 0.042981, 0.044238, 0.045585, 0.035485, 0.041153, 0.042892, 0.046241, 0.052627, 0.050215, 0.050714, 0.051046, 0.048301, 0.053268, 0.047908, 0.048633, 0.045185, 0.047306, 0.053344, 0.051437, 0.051152, 0.047079, 0.038020, 0.030741, 0.025599, 0.018433, 0.008456
-0.038599, -0.026205, -0.009719, 0.008190, 0.020320, 0.027831, 0.038505, 0.044316, 0.043348, 0.046637, 0.043988, 0.040360, 0.046040, 0.041447, 0.040975, 0.041335, 0.035922, 0.037383, 0.039361, 0.043187, 0.051715, 0.045848, 0.047907, 0.050746, 0.048523, 0.049359, 0.047485, 0.047011, 0.048386, 0.044501, 0.053551, 0.054911, 0.053579, 0.049497, 0.048172, 0.037865, 0.032237, 0.019259, 0.012386, -0.002100
-0.041333, -0.029625, -0.013609, 0.000261, 0.020118, 0.034096, 0.045389, 0.050574, 0.048357, 0.049996, 0.051594, 0.052664, 0.051090, 0.050485, 0.049638, 0.047791, 0.048234, 0.044687, 0.050355, 0.051971, 0.064992, 0.059337, 0.060010, 0.063546, 0.068117, 0.057371, 0.055013, 0.057792, 0.051082, 0.056051, 0.062650, 0.058553, 0.061119, 0.060833, 0.051599, 0.046891, 0.035942, 0.025808, 0.011433, 0.002952
-0.053645, -0.033427, -0.016177, -0.006872, 0.011854, 0.030887, 0.038268, 0.039371, 0.046002, 0.047917, 0.048726, 0.049771, 0.047950, 0.046502, 0.048802, 0.045562, 0.039735, 0.047000, 0.041105, 0.055052, 0.062816, 0.052763, 0.054457, 0.068109, 0.062015, 0.070193, 0.068051, 0.059608, 0.065873, 0.060802, 0.065266, 0.064829, 0.058624, 0.058487, 0.058883, 0.047382, 0.036089, 0.024849, 0.013256, 0.000607
-0.061010, -0.047609, -0.028494, -0.014173, 0.001140, 0.023778, 0.028488, 0.037786, 0.040856, 0.041067, 0.046333, 0.047913, 0.044536, 0.047335, 0.047965, 0.042348, 0.036723, 0.036548, 0.040274, 0.047610, 0.055906, 0.054585, 0.053571, 0.065965, 0.065851, 0.068666, 0.082528, 0.061327, 0.060580, 0.064000, 0.054453, 0.061931, 0.059721, 0.052859, 0.048142, 0.040120, 0.026885, 0.016571, 0.004892, -0.008425
-0.075352, -0.060225, -0.038908, -0.026788, -0.009568, 0.004600, 0.013268, 0.019786, 0.025267, 0.035535, 0.028383, 0.034557, 0.033447, 0.035531, 0.042992, 0.037004, 0.026906, 0.025281, 0.029692, 0.034833, 0.045404, 0.042564, 0.048756, 0.047994, 0.055802, 0.075180, 0.072232, 0.062445, 0.056547, 0.047775, 0.053272, 0.053206, 0.050999, 0.050049, 0.040408, 0.029693, 0.015300, 0.003804, -0.007888, -0.024390
-0.086364, -0.067028, -0.047497, -0.037585, -0.020976, 0.000383, 0.011744, 0.021521, 0.020697, 0.033042, 0.034026, 0.034231, 0.036730, 0.031605, 0.040323, 0.032690, 0.032614, 0.030170, 0.026732, 0.034128, 0.040825, 0.048209, 0.040469, 0.047362, 0.036980, 0.045537, 0.051032, 0.046611, 0.056557, 0.042376, 0.052659, 0.048497, 0.045919, 0.050124, 0.038766, 0.023446, 0.014171, -0.004254, -0.014079, -0.023753
-0.093086, -0.069979, -0.055386, -0.039175, -0.025528, -0.009591, 0.001509, 0.009989, 0.016545, 0.028616, 0.027342, 0.029059, 0.032086, 0.025456, 0.026532, 0.024334, 0.023363, 0.023815, 0.022413, 0.033153, 0.032981, 0.037435, 0.027310, 0.037576, 0.035212, 0.041707, 0.044302, 0.036447, 0.045863, 0.045505, 0.041396, 0.046313, 0.036479, 0.036050, 0.033288, 0.017866, 0.001810, -0.013932, -0.024517, -0.041816
-0.097636, -0.081833, -0.063469, -0.046017, -0.029601, -0.008557, 0.003317, 0.015057, 0.020303, 0.032296, 0.038234, 0.039011, 0.038792, 0.037682, 0.029520, 0.032980, 0.031254, 0.024125, 0.030446, 0.032398, 0.042022, 0.039021, 0.026248, 0.035952, 0.031921, 0.043715, 0.040430, 0.044922, 0.045793, 0.044267, 0.041717, 0.042069, 0.037932, 0.041510, 0.023566, 0.014013, 0.008952, -0.013471, -0.025083, -0.039607
-0.107793, -0.091574, -0.069513, -0.057296, -0.039160, -0.023661, -0.010458, 0.000809, 0.010210, 0.023720, 0.025056, 0.022478, 0.028481, 0.028830, 0.021366, 0.029702, 0.024944, 0.027085, 0.029731, 0.030428, 0.037746, 0.031961, 0.037559, 0.025389, 0.035999, 0.029982, 0.041019, 0.041169, 0.038099, 0.040466, 0.031141, 0.029121, 0.020963, 0.018187, 0.010598, 0.002265, -0.013836, -0.021528, -0.042295, -0.061128
-0.107825, -0.091629, -0.077167, -0.063876, -0.044707, -0.021260, -0.010391, 0.010298, 0.014198, 0.024575, 0.033032, 0.026294, 0.035792, 0.031018, 0.036791, 0.032571, 0.033915, 0.032812, 0.042358, 0.042634, 0.047391, 0.037093, 0.037809, 0.038040, 0.036006, 0.038607, 0.032699, 0.038344, 0.034065, 0.036288, 0.029376, 0.026309, 0.022407, 0.010977, 0.006172, -0.007890, -0.021167, -0.030731, -0.049925, -0.070276
-0.110826, -0.094195, -0.076914, -0.056397, -0.050834, -0.032826, -0.015219, -0.000476, 0.009623, 0.025341, 0.028188, 0.025848, 0.030124, 0.035680, 0.029573, 0.030471, 0.030260, 0.033277, 0.038336, 0.039888, 0.042746, 0.041953, 0.045231, 0.045337, 0.046839, 0.032271, 0.034945, 0.034822, 0.032421, 0.032345, 0.032055, 0.020565, 0.019473, 0.006062, -0.001129, -0.010027, -0.030050, -0.043967, -0.059139, -0.079093
-0.117451, -0.099936, -0.080773, -0.065060, -0.049257, -0.028525, -0.008075, 0.003536, 0.016931, 0.029613, 0.037645, 0.041864, 0.044127, 0.045124, 0.040607, 0.035821, 0.044264, 0.039296, 0.040440, 0.054374, 0.051313, 0.052762, 0.048393, 0.046794, 0.038038, 0.030274, 0.035928, 0.038695, 0.043526, 0.037329, 0.030918, 0.021799, 0.017231, 0.010974, -0.004201, -0.012534, -0.029182, -0.041346, -0.059173, -0.077179
-0.122005, -0.104065, -0.085139, -0.065506, -0.055822, -0.034483, -0.021722, -0.005286, 0.009042, 0.020956, 0.028424, 0.033183, 0.038237, 0.031367, 0.030847, 0.028350, 0.037203, 0.042216, 0.043304, 0.053032, 0.052085, 0.053175, 0.039215, 0.042871, 0.029998, 0.028545, 0.021695, 0.033066, 0.026296, 0.022459, 0.012402, 0.003778, -0.003280, -0.009318, -0.022829, -0.030214, -0.048336, -0.063842, -0.076139, -0.092037
-0.144284, -0.119576, -0.101842, -0.084043, -0.068933, -0.047684, -0.023741, -0.007666, 0.002600, 0.016788, 0.025328, 0.027311, 0.034829, 0.032983, 0.027466, 0.032938, 0.034325, 0.035685, 0.040808, 0.039423, 0.045859, 0.031570, 0.045140, 0.029940, 0.026961, 0.031551, 0.022301, 0.026187, 0.012799, 0.012623, 0.004286, -0.007684, -0.015125, -0.023320, -0.041607, -0.049284, -0.069850, -0.078462, -0.092553, -0.108744
-0.150587, -0.131208, -0.110186, -0.087305, -0.075442, -0.056787, -0.037671, -0.024432, -0.008945, 0.003314, 0.006783, 0.010754, 0.017902, 0.016620, 0.017985, 0.013793, 0.022881, 0.024239, 0.027028, 0.032338, 0.029285, 0.037733, 0.026138, 0.024860, 0.016596, 0.016607, 0.014361, 0.004645, 0.002646, -0.003300, -0.006941, -0.025967, -0.027855, -0.043516, -0.050520, -0.062034, -0.086048, -0.097225, -0.110861, -0.124440
-0.162806, -0.145866, -0.120145, -0.103827, -0.085373, -0.063983, -0.045209, -0.027371, -0.013519, -0.000604, 0.009249, 0.012191, 0.016387, 0.021045, 0.015497, 0.016359, 0.026788, 0.029288, 0.027303, 0.034397, 0.034199, 0.027473, 0.029186, 0.026162, 0.015445, 0.022424, 0.013993, 0.014818, -0.002770, -0.001785, -0.013369, -0.017939, -0.025818, -0.040851, -0.051079, -0.063817, -0.083524, -0.093930, -0.110525, -0.133554
-0.161294, -0.143084, -0.126316, -0.106730, -0.086941, -0.071827, -0.050635, -0.035685, -0.026578, -0.010002, 0.002159, 0.004398, 0.009515, 0.010334, 0.004995, 0.012322, 0.014287, 0.023202, 0.021453, 0.032566, 0.024054, 0.023744, 0.022705, 0.013927, 0.014669, 0.012266, 0.010909, 0.002655, -0.007652, -0.008069, -0.021869, -0.023593, -0.040350, -0.047855, -0.058585, -0.073661, -0.093504, -0.101724, -0.124643, -0.139999
-0.165490, -0.150284, -0.129326, -0.118211, -0.093380, -0.069990, -0.048425, -0.036778, -0.018526, -0.009343, 0.002909, 0.009854, 0.017280, 0.020626, 0.022063, 0.020956, 0.024158, 0.024140, 0.025800, 0.024277, 0.032881, 0.018087, 0.024155, 0.016078, 0.016807, 0.008445, 0.009742, 0.001875, -0.000076, -0.011073, -0.013767, -0.022879, -0.033663, -0.038172, -0.054423, -0.075383, -0.087895, -0.103077, -0.118466, -0.139210
-0.164741, -0.149458, -0.128625, -0.108757, -0.094021, -0.070846, -0.057405, -0.037196, -0.023879, -0.011679, -0.002200, 0.010632, 0.012544, 0.017514, 0.007523, 0.014758, 0.011621, 0.018024, 0.018640, 0.019239, 0.018334, 0.017173, 0.012503, 0.011850, 0.015916, 0.010661, 0.012599, -0.006011, 0.001757, -0.013379, -0.020837, -0.029545, -0.038554, -0.044989, -0.056105, -0.073920, -0.091559, -0.109948, -0.131812, -0.148866
-0.161192, -0.146426, -0.123912, -0.107967, -0.091431, -0.063851, -0.052031, -0.033387, -0.013515, -0.004964, 0.008640, 0.009243, 0.015557, 0.018160, 0.008634, 0.022904, 0.015484, 0.021598, 0.020520, 0.027237, 0.024071, 0.027051, 0.025166, 0.021521, 0.019501, 0.018115, 0.012716, 0.003499, -0.004108, -0.007234, -0.015430, -0.021205, -0.030325, -0.038011, -0.048883, -0.073171, -0.085945, -0.106584, -0.123136, -0.146932
-0.163394, -0.144910, -0.123557, -0.105989, -0.085464, -0.068322, -0.055913, -0.034924, -0.020885, -0.007727, -0.000091, -0.003049, 0.004528, 0.010128, 0.010794, 0.015147, 0.023212, 0.018037, 0.030237, 0.025833, 0.035246, 0.027231, 0.028467, 0.019626, 0.020773, 0.015095, 0.010628, -0.000447, -0.004534, -0.015071, -0.016350, -0.022750, -0.031666, -0.042816, -0.060372, -0.072118, -0.096505, -0.113629, -0.129099, -0.149639
-0.163888, -0.147119, -0.126601, -0.110401, -0.089585, -0.066428, -0.048653, -0.031605, -0.015497, -0.003229, 0.001683, 0.003134, 0.006517, 0.019922, 0.022975, 0.025146, 0.030978, 0.030680, 0.030758, 0.042102, 0.034703, 0.037398, 0.031920, 0.027679, 0.025197, 0.017328, 0.015572, 0.005208, -0.006012, -0.007507, -0.020529, -0.021368, -0.024674, -0.041103, -0.057142, -0.071432, -0.096594, -0.112033, -0.128949, -0.150273
-0.169205, -0.149910, -0.126633, -0.103289, -0.083129, -0.066577, -0.047251, -0.043391, -0.019676, -0.006277, -0.002923, -0.001407, 0.005447, 0.014212, 0.017559, 0.018242, 0.025576, 0.034093, 0.029712, 0.039853, 0.034004, 0.037705, 0.037633, 0.029530, 0.032691, 0.016154, 0.018524, 0.001565, -0.003378, -0.017339, -0.017576, -0.028136, -0.038211, -0.050222, -0.063141, -0.081632, -0.107915, -0.125078, -0.145643, -0.163253
-0.169909, -0.150547, -0.122806, -0.108588, -0.087020, -0.064423, -0.048864, -0.033515, -0.016725, -0.000007, 0.004596, 0.007673, 0.013001, 0.024683, 0.023693, 0.033785, 0.030848, 0.038796, 0.040130, 0.045461, 0.043007, 0.044259, 0.042320, 0.039451, 0.035227, 0.034204, 0.020064, 0.013351, 0.001338, -0.009438, -0.017824, -0.023771, -0.034592, -0.045737, -0.066308, -0.087380, -0.099963, -0.120463, -0.140871, -0.163090
-0.172270, -0.148143, -0.126370, -0.103685, -0.085033, -0.064013, -0.047998, -0.036015, -0.027404, -0.008503, -0.000007, 0.001792, 0.017482, 0.017033, 0.023048, 0.028291, 0.031566, 0.032649, 0.049810, 0.043254, 0.050276, 0.047977, 0.049738, 0.045308, 0.035666, 0.031137, 0.018911, 0.003481, -0.008351, -0.017281, -0.026446, -0.036765, -0.044520, -0.063303, -0.071282, -0.097485, -0.113915, -0.126273, -0.156999, -0.169508
-0.185629, -0.163591, -0.134431, -0.117576, -0.097849, -0.070707, -0.050591, -0.034730, -0.021035, -0.010894, 0.005273, 0.008055, 0.024733, 0.024226, 0.031631, 0.038222, 0.039560, 0.048170, 0.050459, 0.055897, 0.056059, 0.060914, 0.051111, 0.049437, 0.047189, 0.033126, 0.025555, 0.011558, -0.003121, -0.010577, -0.025509, -0.035433, -0.040888, -0.058967, -0.077560, -0.087272, -0.108429, -0.127233, -0.147649, -0.167307
-0.189333, -0.171139, -0.148115, -0.129433, -0.101821, -0.076289, -0.060062, -0.047845, -0.027892, -0.013005, -0.007725, 0.003703, 0.013953, 0.017800, 0.025586, 0.034166, 0.038987, 0.051736, 0.046160, 0.053607, 0.055648, 0.052695, 0.051944, 0.045185, 0.040424, 0.023462, 0.013930, 0.001203, -0.013945, -0.026162, -0.034120, -0.047062, -0.054942, -0.072669, -0.087652, -0.103851, -0.117876, -0.136153, -0.162888, -0.181076
-0.200779, -0.176696, -0.153394, -0.135207, -0.112871, -0.080463, -0.063566, -0.042397, -0.022048, -0.010914, 0.001461, 0.005978, 0.022955, 0.029439, 0.033063, 0.037765, 0.045757, 0.054970, 0.053408, 0.063704, 0.058089, 0.062982, 0.053170, 0.048627, 0.049683, 0.035724, 0.020239, 0.010693, -0.010604, -0.018065, -0.031666, -0.045637, -0.052413, -0.064993, -0.085650, -0.094617, -0.113018, -0.135618, -0.156640, -0.179042
-0.196012, -0.175963, -0.150776, -0.125180, -0.102593, -0.078981, -0.055974, -0.043706, -0.028043, -0.012697, -0.003043, 0.010296, 0.012424, 0.028008, 0.029375, 0.037792, 0.052592, 0.048696, 0.062090, 0.060455, 0.067354, 0.061479, 0.052912, 0.052056, 0.041931, 0.026817, 0.020195, -0.001428, -0.006103, -0.021712, -0.040451, -0.045375, -0.060782, -0.081307, -0.086318, -0.104985, -0.131464, -0.139787, -0.167730, -0.182686
-0.204462, -0.183143, -0.151956, -0.130017, -0.107878, -0.078570, -0.063741, -0.043175, -0.029878, -0.016118, 0.005006, 0.009334, 0.022777, 0.033089, 0.037803, 0.045407, 0.050405, 0.058892, 0.059459, 0.064198, 0.062054, 0.067594, 0.060391, 0.059728, 0.044693, 0.036098, 0.021100, 0.007102, -0.003474, -0.019393, -0.027796, -0.043671, -0.054928, -0.072235, -0.087523, -0.104107, -0.123059, -0.136566, -0.160150, -0.179644
-0.210136, -0.189495, -0.165781, -0.139441, -0.112529, -0.090500, -0.068498, -0.057696, -0.036452, -0.020962, -0.013461, 0.006392, 0.014952, 0.019854, 0.038431, 0.041829, 0.048737, 0.054875, 0.055873, 0.061173, 0.070764, 0.056050, 0.058384, 0.050081, 0.037932, 0.030938, 0.013547, -0.004023, -0.015345, -0.034168, -0.046564, -0.052946, -0.066388, -0.077714, -0.098124, -0.124063, -0.142726, -0.151285, -0.179113, -0.188060
-0.217352, -0.196199, -0.171418, -0.152117, -0.132194, -0.101621, -0.078468, -0.058926, -0.040895, -0.027581, -0.006548, 0.005396, 0.020515, 0.030971, 0.047162, 0.048760, 0.053652, 0.062261, 0.054275, 0.068845, 0.061269, 0.066790, 0.058350, 0.054453, 0.047254, 0.031766, 0.027448, -0.002037, -0.015820, -0.023400, -0.045036, -0.054681, -0.061742, -0.085647, -0.101616, -0.115948, -0.135762, -0.152051, -0.168905, -0.191372
-0.229881, -0.210436, -0.185424, -0.163166, -0.142377, -0.114239, -0.091002, -0.070777, -0.048881, -0.030101, -0.017866, -0.004209, 0.016120, 0.027452, 0.033430, 0.052520, 0.051342, 0.063991, 0.066103, 0.068975, 0.078929, 0.061472, 0.068518, 0.055767, 0.044258, 0.032486, 0.015267, -0.004723, -0.018957, -0.034953, -0.048183, -0.069959, -0.080503, -0.095625, -0.113411, -0.131302, -0.151552, -0.168533, -0.196055, -0.208650
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh Contact]
version = 1
points =
0.227083, 0.208490, 0.191458, 0.137865, 0.081771, 0.032552, 0.013802, 0.008177, 0.033802, 0.041615, 0.093021, 0.133958, 0.169740, 0.231146, 0.211146
0.232865, 0.254115, 0.247240, 0.211927, 0.175365, 0.122708, 0.105521, 0.108021, 0.117865, 0.133177, 0.142396, 0.173802, 0.176927, 0.231615, 0.176927
0.159896, 0.184427, 0.225208, 0.217708, 0.189271, 0.194896, 0.156927, 0.168333, 0.185208, 0.206771, 0.225521, 0.228021, 0.239427, 0.214583, 0.200365
0.115052, 0.193021, 0.256302, 0.253490, 0.245833, 0.234115, 0.216927, 0.253177, 0.243490, 0.248646, 0.254740, 0.287865, 0.255208, 0.223021, 0.163333
0.036615, 0.104427, 0.152240, 0.228333, 0.198177, 0.237083, 0.260521, 0.242396, 0.253021, 0.302240, 0.274583, 0.256302, 0.253646, 0.167552, 0.100365
-0.047917, 0.052708, 0.140833, 0.199740, 0.211615, 0.206615, 0.235052, 0.236458, 0.230208, 0.272396, 0.233958, 0.207240, 0.159115, 0.080521, -0.001667
-0.130104, -0.008073, 0.096458, 0.155990, 0.201146, 0.266771, 0.258177, 0.254115, 0.277865, 0.257552, 0.270990, 0.228490, 0.179583, 0.071771, -0.052292
-0.202135, -0.068854, 0.071146, 0.154271, 0.214271, 0.220208, 0.269427, 0.271458, 0.274427, 0.271927, 0.247240, 0.173646, 0.104271, 0.014271, -0.144948
-0.301198, -0.138073, -0.006198, 0.148646, 0.193333, 0.216458, 0.240990, 0.272708, 0.272552, 0.246302, 0.200677, 0.143958, 0.040521, -0.085729, -0.251042
2.292865, 2.302552, 2.381458, 0.078958, 0.181771, 0.209115, 0.260833, 0.274583, 0.249740, 0.219583, 0.178333, 0.093802, -0.021510, -0.167448, -0.344792
-0.476979, -0.267917, -0.051979, 0.064896, 0.166615, 0.193490, 0.257865, 0.292396, 0.280677, 0.241771, 0.166458, 0.099271, -0.008542, -0.186979, -0.402760
-0.502917, -0.248854, -0.044948, 0.111927, 0.183802, 0.262865, 0.297396, 0.335208, 0.308333, 0.258802, 0.181771, 0.099583, -0.060573, -0.230573, -0.461979
-0.608073, -0.355104, -0.118385, 0.039427, 0.130833, 0.225052, 0.297708, 0.304896, 0.310677, 0.255833, 0.157240, 0.070521, -0.081979, -0.279323, -0.524635
-0.618542, -0.425729, -0.198854, 0.008177, 0.103490, 0.203958, 0.274896, 0.302396, 0.268490, 0.246615, 0.136146, 0.047865, -0.148698, -0.352448, -0.604323
-0.540260, -0.586510, -0.297448, -0.093698, 0.076615, 0.135521, 0.244583, 0.267708, 0.271146, 0.217240, 0.090833, -0.058854, -0.237604, -0.456510, -0.501979
x_count = 15
y_count = 15
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 469.96000000000004
min_y = 30.0
max_y = 439.91999999999985
=======================
Extruder max_extrude_ratio=0.266081
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
Loaded MCU 'mcu' 130 commands (v0.12.0-396-gb7233d119 / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34)
MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_sdio=PC12,PD2,PC8,PC9,PC10,PC11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 CLOCK_FREQ=180000000 MCU=stm32f446xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
mcu 'rpi': Starting connect
Loaded MCU 'rpi' 124 commands (v0.12.0-396-gb7233d119 / gcc: (Raspbian 10.2.1-6+rpi1) 10.2.1 20210110 binutils: (GNU Binutils for Raspbian) 2.35.2)
MCU 'rpi' config: ADC_MAX=4095 CLOCK_FREQ=50000000 MCU=linux PCA9685_MAX=4096 PWM_MAX=32768 STATS_SUMSQ_BASE=256
mcu 'toolboard_t0': Starting serial connect
Loaded MCU 'toolboard_t0' 118 commands (v0.12.0-396-gb7233d119 / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34)
MCU 'toolboard_t0' config: ADC_MAX=4095 BUS_PINS_i2c1_PA9_PA10=PA9,PA10 BUS_PINS_i2c1_PB6_PB7=PB6,PB7 BUS_PINS_i2c1_PB8_PB9=PB8,PB9 BUS_PINS_i2c2_PB10_PB11=PB10,PB11 BUS_PINS_i2c2_PB13_PB14=PB13,PB14 BUS_PINS_i2c3_PB3_PB4=PB3,PB4 BUS_PINS_i2c3_PC0_PC1=PC0,PC1 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2_PB2_PB11_PB10=PB2,PB11,PB10 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=64000000 MCU=stm32g0b1xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PF0,PF1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
mcu 'toolboard_t1': Starting serial connect
Loaded MCU 'toolboard_t1' 118 commands (v0.12.0-396-gb7233d119 / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34)
MCU 'toolboard_t1' config: ADC_MAX=4095 BUS_PINS_i2c1_PA9_PA10=PA9,PA10 BUS_PINS_i2c1_PB6_PB7=PB6,PB7 BUS_PINS_i2c1_PB8_PB9=PB8,PB9 BUS_PINS_i2c2_PB10_PB11=PB10,PB11 BUS_PINS_i2c2_PB13_PB14=PB13,PB14 BUS_PINS_i2c3_PB3_PB4=PB3,PB4 BUS_PINS_i2c3_PC0_PC1=PC0,PC1 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2_PB2_PB11_PB10=PB2,PB11,PB10 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=64000000 MCU=stm32g0b1xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PF0,PF1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
mcu_temperature 'mcu' nominal base=-282.098765 slope=1348.148148
mcu_temperature 'toolboard_t0' nominal base=-276.784661 slope=1328.761062
mcu_temperature 'toolboard_t1' nominal base=-267.398844 slope=1301.878613
mcu 'beacon': Starting serial connect
webhooks client 4119939008: New connection
webhooks client 4119939008: Client info {'program': 'Moonraker', 'version': 'v0.9.3-0-g71f9e67'}
Loaded MCU 'beacon' 45 commands (Beacon 2.1.0 / )
MCU 'beacon' config: ADC_MAX=4095 BEACON_ACCEL_BITS=12 BEACON_ACCEL_SCALE_16G=7.81 BEACON_ACCEL_SCALE_2G=0.98 BEACON_ACCEL_SCALE_4G=1.95 BEACON_ACCEL_SCALE_8G=3.91 BEACON_ADC_SMOOTH_COUNT=16 BEACON_HAS_ACCEL=1 BEACON_REV=H CLOCK_FREQ=32000000 MCU=beacon STATS_SUMSQ_BASE=256
Sending MCU 'mcu' printer configuration...
Configured MCU 'mcu' (1024 moves)
Sending MCU 'rpi' printer configuration...
Configured MCU 'rpi' (1024 moves)
Sending MCU 'toolboard_t0' printer configuration...
Configured MCU 'toolboard_t0' (1024 moves)
Sending MCU 'toolboard_t1' printer configuration...
Configured MCU 'toolboard_t1' (1024 moves)
Starting heater checks for heater_bed
bed_mesh: generated points
Index | Tool Adjusted | Probe
0 | (20.0, 7.5) | (20.0, 30.0)
1 | (31.5, 7.5) | (31.5, 30.0)
2 | (43.1, 7.5) | (43.1, 30.0)
3 | (54.6, 7.5) | (54.6, 30.0)
4 | (66.1, 7.5) | (66.1, 30.0)
5 | (77.7, 7.5) | (77.7, 30.0)
6 | (89.2, 7.5) | (89.2, 30.0)
7 | (100.7, 7.5) | (100.7, 30.0)
8 | (112.2, 7.5) | (112.2, 30.0)
9 | (123.8, 7.5) | (123.8, 30.0)
10 | (135.3, 7.5) | (135.3, 30.0)
11 | (146.8, 7.5) | (146.8, 30.0)
12 | (158.4, 7.5) | (158.4, 30.0)
13 | (169.9, 7.5) | (169.9, 30.0)
14 | (181.4, 7.5) | (181.4, 30.0)
15 | (192.9, 7.5) | (192.9, 30.0)
16 | (204.5, 7.5) | (204.5, 30.0)
17 | (216.0, 7.5) | (216.0, 30.0)
18 | (227.5, 7.5) | (227.5, 30.0)
19 | (239.1, 7.5) | (239.1, 30.0)
20 | (250.6, 7.5) | (250.6, 30.0)
21 | (262.1, 7.5) | (262.1, 30.0)
22 | (273.7, 7.5) | (273.7, 30.0)
23 | (285.2, 7.5) | (285.2, 30.0)
24 | (296.7, 7.5) | (296.7, 30.0)
25 | (308.2, 7.5) | (308.2, 30.0)
26 | (319.8, 7.5) | (319.8, 30.0)
27 | (331.3, 7.5) | (331.3, 30.0)
28 | (342.8, 7.5) | (342.8, 30.0)
29 | (354.4, 7.5) | (354.4, 30.0)
30 | (365.9, 7.5) | (365.9, 30.0)
31 | (377.4, 7.5) | (377.4, 30.0)
32 | (389.0, 7.5) | (389.0, 30.0)
33 | (400.5, 7.5) | (400.5, 30.0)
34 | (412.0, 7.5) | (412.0, 30.0)
35 | (423.5, 7.5) | (423.5, 30.0)
36 | (435.1, 7.5) | (435.1, 30.0)
37 | (446.6, 7.5) | (446.6, 30.0)
38 | (458.1, 7.5) | (458.1, 30.0)
39 | (469.7, 7.5) | (469.7, 30.0)
40 | (469.7, 18.6) | (469.7, 41.1)
41 | (458.1, 18.6) | (458.1, 41.1)
42 | (446.6, 18.6) | (446.6, 41.1)
43 | (435.1, 18.6) | (435.1, 41.1)
44 | (423.5, 18.6) | (423.5, 41.1)
45 | (412.0, 18.6) | (412.0, 41.1)
46 | (400.5, 18.6) | (400.5, 41.1)
47 | (389.0, 18.6) | (389.0, 41.1)
48 | (377.4, 18.6) | (377.4, 41.1)
49 | (365.9, 18.6) | (365.9, 41.1)
50 | (354.4, 18.6) | (354.4, 41.1)
51 | (342.8, 18.6) | (342.8, 41.1)
52 | (331.3, 18.6) | (331.3, 41.1)
53 | (319.8, 18.6) | (319.8, 41.1)
54 | (308.2, 18.6) | (308.2, 41.1)
55 | (296.7, 18.6) | (296.7, 41.1)
56 | (285.2, 18.6) | (285.2, 41.1)
57 | (273.7, 18.6) | (273.7, 41.1)
58 | (262.1, 18.6) | (262.1, 41.1)
59 | (250.6, 18.6) | (250.6, 41.1)
60 | (239.1, 18.6) | (239.1, 41.1)
61 | (227.5, 18.6) | (227.5, 41.1)
62 | (216.0, 18.6) | (216.0, 41.1)
63 | (204.5, 18.6) | (204.5, 41.1)
64 | (192.9, 18.6) | (192.9, 41.1)
65 | (181.4, 18.6) | (181.4, 41.1)
66 | (169.9, 18.6) | (169.9, 41.1)
67 | (158.4, 18.6) | (158.4, 41.1)
68 | (146.8, 18.6) | (146.8, 41.1)
69 | (135.3, 18.6) | (135.3, 41.1)
70 | (123.8, 18.6) | (123.8, 41.1)
71 | (112.2, 18.6) | (112.2, 41.1)
72 | (100.7, 18.6) | (100.7, 41.1)
73 | (89.2, 18.6) | (89.2, 41.1)
74 | (77.6, 18.6) | (77.6, 41.1)
75 | (66.1, 18.6) | (66.1, 41.1)
76 | (54.6, 18.6) | (54.6, 41.1)
77 | (43.1, 18.6) | (43.1, 41.1)
78 | (31.5, 18.6) | (31.5, 41.1)
79 | (20.0, 18.6) | (20.0, 41.1)
80 | (20.0, 29.7) | (20.0, 52.2)
81 | (31.5, 29.7) | (31.5, 52.2)
82 | (43.1, 29.7) | (43.1, 52.2)
83 | (54.6, 29.7) | (54.6, 52.2)
84 | (66.1, 29.7) | (66.1, 52.2)
85 | (77.7, 29.7) | (77.7, 52.2)
86 | (89.2, 29.7) | (89.2, 52.2)
87 | (100.7, 29.7) | (100.7, 52.2)
88 | (112.2, 29.7) | (112.2, 52.2)
89 | (123.8, 29.7) | (123.8, 52.2)
90 | (135.3, 29.7) | (135.3, 52.2)
91 | (146.8, 29.7) | (146.8, 52.2)
92 | (158.4, 29.7) | (158.4, 52.2)
93 | (169.9, 29.7) | (169.9, 52.2)
94 | (181.4, 29.7) | (181.4, 52.2)
95 | (192.9, 29.7) | (192.9, 52.2)
96 | (204.5, 29.7) | (204.5, 52.2)
97 | (216.0, 29.7) | (216.0, 52.2)
98 | (227.5, 29.7) | (227.5, 52.2)
99 | (239.1, 29.7) | (239.1, 52.2)
100 | (250.6, 29.7) | (250.6, 52.2)
101 | (262.1, 29.7) | (262.1, 52.2)
102 | (273.7, 29.7) | (273.7, 52.2)
103 | (285.2, 29.7) | (285.2, 52.2)
104 | (296.7, 29.7) | (296.7, 52.2)
105 | (308.2, 29.7) | (308.2, 52.2)
106 | (319.8, 29.7) | (319.8, 52.2)
107 | (331.3, 29.7) | (331.3, 52.2)
108 | (342.8, 29.7) | (342.8, 52.2)
109 | (354.4, 29.7) | (354.4, 52.2)
110 | (365.9, 29.7) | (365.9, 52.2)
111 | (377.4, 29.7) | (377.4, 52.2)
112 | (389.0, 29.7) | (389.0, 52.2)
113 | (400.5, 29.7) | (400.5, 52.2)
114 | (412.0, 29.7) | (412.0, 52.2)
115 | (423.5, 29.7) | (423.5, 52.2)
116 | (435.1, 29.7) | (435.1, 52.2)
117 | (446.6, 29.7) | (446.6, 52.2)
118 | (458.1, 29.7) | (458.1, 52.2)
119 | (469.7, 29.7) | (469.7, 52.2)
120 | (469.7, 40.7) | (469.7, 63.2)
121 | (458.1, 40.7) | (458.1, 63.2)
122 | (446.6, 40.7) | (446.6, 63.2)
123 | (435.1, 40.7) | (435.1, 63.2)
124 | (423.5, 40.7) | (423.5, 63.2)
125 | (412.0, 40.7) | (412.0, 63.2)
126 | (400.5, 40.7) | (400.5, 63.2)
127 | (389.0, 40.7) | (389.0, 63.2)
128 | (377.4, 40.7) | (377.4, 63.2)
129 | (365.9, 40.7) | (365.9, 63.2)
130 | (354.4, 40.7) | (354.4, 63.2)
131 | (342.8, 40.7) | (342.8, 63.2)
132 | (331.3, 40.7) | (331.3, 63.2)
133 | (319.8, 40.7) | (319.8, 63.2)
134 | (308.2, 40.7) | (308.2, 63.2)
135 | (296.7, 40.7) | (296.7, 63.2)
136 | (285.2, 40.7) | (285.2, 63.2)
137 | (273.7, 40.7) | (273.7, 63.2)
138 | (262.1, 40.7) | (262.1, 63.2)
139 | (250.6, 40.7) | (250.6, 63.2)
140 | (239.1, 40.7) | (239.1, 63.2)
141 | (227.5, 40.7) | (227.5, 63.2)
142 | (216.0, 40.7) | (216.0, 63.2)
143 | (204.5, 40.7) | (204.5, 63.2)
144 | (192.9, 40.7) | (192.9, 63.2)
145 | (181.4, 40.7) | (181.4, 63.2)
146 | (169.9, 40.7) | (169.9, 63.2)
147 | (158.4, 40.7) | (158.4, 63.2)
148 | (146.8, 40.7) | (146.8, 63.2)
149 | (135.3, 40.7) | (135.3, 63.2)
150 | (123.8, 40.7) | (123.8, 63.2)
151 | (112.2, 40.7) | (112.2, 63.2)
152 | (100.7, 40.7) | (100.7, 63.2)
153 | (89.2, 40.7) | (89.2, 63.2)
154 | (77.6, 40.7) | (77.6, 63.2)
155 | (66.1, 40.7) | (66.1, 63.2)
156 | (54.6, 40.7) | (54.6, 63.2)
157 | (43.1, 40.7) | (43.1, 63.2)
158 | (31.5, 40.7) | (31.5, 63.2)
159 | (20.0, 40.7) | (20.0, 63.2)
160 | (20.0, 51.8) | (20.0, 74.3)
161 | (31.5, 51.8) | (31.5, 74.3)
162 | (43.1, 51.8) | (43.1, 74.3)
163 | (54.6, 51.8) | (54.6, 74.3)
164 | (66.1, 51.8) | (66.1, 74.3)
165 | (77.7, 51.8) | (77.7, 74.3)
166 | (89.2, 51.8) | (89.2, 74.3)
167 | (100.7, 51.8) | (100.7, 74.3)
168 | (112.2, 51.8) | (112.2, 74.3)
169 | (123.8, 51.8) | (123.8, 74.3)
170 | (135.3, 51.8) | (135.3, 74.3)
171 | (146.8, 51.8) | (146.8, 74.3)
172 | (158.4, 51.8) | (158.4, 74.3)
173 | (169.9, 51.8) | (169.9, 74.3)
174 | (181.4, 51.8) | (181.4, 74.3)
175 | (192.9, 51.8) | (192.9, 74.3)
176 | (204.5, 51.8) | (204.5, 74.3)
177 | (216.0, 51.8) | (216.0, 74.3)
178 | (227.5, 51.8) | (227.5, 74.3)
179 | (239.1, 51.8) | (239.1, 74.3)
180 | (250.6, 51.8) | (250.6, 74.3)
181 | (262.1, 51.8) | (262.1, 74.3)
182 | (273.7, 51.8) | (273.7, 74.3)
183 | (285.2, 51.8) | (285.2, 74.3)
184 | (296.7, 51.8) | (296.7, 74.3)
185 | (308.2, 51.8) | (308.2, 74.3)
186 | (319.8, 51.8) | (319.8, 74.3)
187 | (331.3, 51.8) | (331.3, 74.3)
188 | (342.8, 51.8) | (342.8, 74.3)
189 | (354.4, 51.8) | (354.4, 74.3)
190 | (365.9, 51.8) | (365.9, 74.3)
191 | (377.4, 51.8) | (377.4, 74.3)
192 | (389.0, 51.8) | (389.0, 74.3)
193 | (400.5, 51.8) | (400.5, 74.3)
194 | (412.0, 51.8) | (412.0, 74.3)
195 | (423.5, 51.8) | (423.5, 74.3)
196 | (435.1, 51.8) | (435.1, 74.3)
197 | (446.6, 51.8) | (446.6, 74.3)
198 | (458.1, 51.8) | (458.1, 74.3)
199 | (469.7, 51.8) | (469.7, 74.3)
200 | (469.7, 62.9) | (469.7, 85.4)
201 | (458.1, 62.9) | (458.1, 85.4)
202 | (446.6, 62.9) | (446.6, 85.4)
203 | (435.1, 62.9) | (435.1, 85.4)
204 | (423.5, 62.9) | (423.5, 85.4)
205 | (412.0, 62.9) | (412.0, 85.4)
206 | (400.5, 62.9) | (400.5, 85.4)
207 | (389.0, 62.9) | (389.0, 85.4)
208 | (377.4, 62.9) | (377.4, 85.4)
209 | (365.9, 62.9) | (365.9, 85.4)
210 | (354.4, 62.9) | (354.4, 85.4)
211 | (342.8, 62.9) | (342.8, 85.4)
212 | (331.3, 62.9) | (331.3, 85.4)
213 | (319.8, 62.9) | (319.8, 85.4)
214 | (308.2, 62.9) | (308.2, 85.4)
215 | (296.7, 62.9) | (296.7, 85.4)
216 | (285.2, 62.9) | (285.2, 85.4)
217 | (273.7, 62.9) | (273.7, 85.4)
218 | (262.1, 62.9) | (262.1, 85.4)
219 | (250.6, 62.9) | (250.6, 85.4)
220 | (239.1, 62.9) | (239.1, 85.4)
221 | (227.5, 62.9) | (227.5, 85.4)
222 | (216.0, 62.9) | (216.0, 85.4)
223 | (204.5, 62.9) | (204.5, 85.4)
224 | (192.9, 62.9) | (192.9, 85.4)
225 | (181.4, 62.9) | (181.4, 85.4)
226 | (169.9, 62.9) | (169.9, 85.4)
227 | (158.4, 62.9) | (158.4, 85.4)
228 | (146.8, 62.9) | (146.8, 85.4)
229 | (135.3, 62.9) | (135.3, 85.4)
230 | (123.8, 62.9) | (123.8, 85.4)
231 | (112.2, 62.9) | (112.2, 85.4)
232 | (100.7, 62.9) | (100.7, 85.4)
233 | (89.2, 62.9) | (89.2, 85.4)
234 | (77.6, 62.9) | (77.6, 85.4)
235 | (66.1, 62.9) | (66.1, 85.4)
236 | (54.6, 62.9) | (54.6, 85.4)
237 | (43.1, 62.9) | (43.1, 85.4)
238 | (31.5, 62.9) | (31.5, 85.4)
239 | (20.0, 62.9) | (20.0, 85.4)
240 | (20.0, 74.0) | (20.0, 96.5)
241 | (31.5, 74.0) | (31.5, 96.5)
242 | (43.1, 74.0) | (43.1, 96.5)
243 | (54.6, 74.0) | (54.6, 96.5)
244 | (66.1, 74.0) | (66.1, 96.5)
245 | (77.7, 74.0) | (77.7, 96.5)
246 | (89.2, 74.0) | (89.2, 96.5)
247 | (100.7, 74.0) | (100.7, 96.5)
248 | (112.2, 74.0) | (112.2, 96.5)
249 | (123.8, 74.0) | (123.8, 96.5)
250 | (135.3, 74.0) | (135.3, 96.5)
251 | (146.8, 74.0) | (146.8, 96.5)
252 | (158.4, 74.0) | (158.4, 96.5)
253 | (169.9, 74.0) | (169.9, 96.5)
254 | (181.4, 74.0) | (181.4, 96.5)
255 | (192.9, 74.0) | (192.9, 96.5)
256 | (204.5, 74.0) | (204.5, 96.5)
257 | (216.0, 74.0) | (216.0, 96.5)
258 | (227.5, 74.0) | (227.5, 96.5)
259 | (239.1, 74.0) | (239.1, 96.5)
260 | (250.6, 74.0) | (250.6, 96.5)
261 | (262.1, 74.0) | (262.1, 96.5)
262 | (273.7, 74.0) | (273.7, 96.5)
263 | (285.2, 74.0) | (285.2, 96.5)
264 | (296.7, 74.0) | (296.7, 96.5)
265 | (308.2, 74.0) | (308.2, 96.5)
266 | (319.8, 74.0) | (319.8, 96.5)
267 | (331.3, 74.0) | (331.3, 96.5)
268 | (342.8, 74.0) | (342.8, 96.5)
269 | (354.4, 74.0) | (354.4, 96.5)
270 | (365.9, 74.0) | (365.9, 96.5)
271 | (377.4, 74.0) | (377.4, 96.5)
272 | (389.0, 74.0) | (389.0, 96.5)
273 | (400.5, 74.0) | (400.5, 96.5)
274 | (412.0, 74.0) | (412.0, 96.5)
275 | (423.5, 74.0) | (423.5, 96.5)
276 | (435.1, 74.0) | (435.1, 96.5)
277 | (446.6, 74.0) | (446.6, 96.5)
278 | (458.1, 74.0) | (458.1, 96.5)
279 | (469.7, 74.0) | (469.7, 96.5)
280 | (469.7, 85.1) | (469.7, 107.6)
281 | (458.1, 85.1) | (458.1, 107.6)
282 | (446.6, 85.1) | (446.6, 107.6)
283 | (435.1, 85.1) | (435.1, 107.6)
284 | (423.5, 85.1) | (423.5, 107.6)
285 | (412.0, 85.1) | (412.0, 107.6)
286 | (400.5, 85.1) | (400.5, 107.6)
287 | (389.0, 85.1) | (389.0, 107.6)
288 | (377.4, 85.1) | (377.4, 107.6)
289 | (365.9, 85.1) | (365.9, 107.6)
290 | (354.4, 85.1) | (354.4, 107.6)
291 | (342.8, 85.1) | (342.8, 107.6)
292 | (331.3, 85.1) | (331.3, 107.6)
293 | (319.8, 85.1) | (319.8, 107.6)
294 | (308.2, 85.1) | (308.2, 107.6)
295 | (296.7, 85.1) | (296.7, 107.6)
296 | (285.2, 85.1) | (285.2, 107.6)
297 | (273.7, 85.1) | (273.7, 107.6)
298 | (262.1, 85.1) | (262.1, 107.6)
299 | (250.6, 85.1) | (250.6, 107.6)
300 | (239.1, 85.1) | (239.1, 107.6)
301 | (227.5, 85.1) | (227.5, 107.6)
302 | (216.0, 85.1) | (216.0, 107.6)
303 | (204.5, 85.1) | (204.5, 107.6)
304 | (192.9, 85.1) | (192.9, 107.6)
305 | (181.4, 85.1) | (181.4, 107.6)
306 | (169.9, 85.1) | (169.9, 107.6)
307 | (158.4, 85.1) | (158.4, 107.6)
308 | (146.8, 85.1) | (146.8, 107.6)
309 | (135.3, 85.1) | (135.3, 107.6)
310 | (123.8, 85.1) | (123.8, 107.6)
311 | (112.2, 85.1) | (112.2, 107.6)
312 | (100.7, 85.1) | (100.7, 107.6)
313 | (89.2, 85.1) | (89.2, 107.6)
314 | (77.6, 85.1) | (77.6, 107.6)
315 | (66.1, 85.1) | (66.1, 107.6)
316 | (54.6, 85.1) | (54.6, 107.6)
317 | (43.1, 85.1) | (43.1, 107.6)
318 | (31.5, 85.1) | (31.5, 107.6)
319 | (20.0, 85.1) | (20.0, 107.6)
320 | (20.0, 96.1) | (20.0, 118.6)
321 | (31.5, 96.1) | (31.5, 118.6)
322 | (43.1, 96.1) | (43.1, 118.6)
323 | (54.6, 96.1) | (54.6, 118.6)
324 | (66.1, 96.1) | (66.1, 118.6)
325 | (77.7, 96.1) | (77.7, 118.6)
326 | (89.2, 96.1) | (89.2, 118.6)
327 | (100.7, 96.1) | (100.7, 118.6)
328 | (112.2, 96.1) | (112.2, 118.6)
329 | (123.8, 96.1) | (123.8, 118.6)
330 | (135.3, 96.1) | (135.3, 118.6)
331 | (146.8, 96.1) | (146.8, 118.6)
332 | (158.4, 96.1) | (158.4, 118.6)
333 | (169.9, 96.1) | (169.9, 118.6)
334 | (181.4, 96.1) | (181.4, 118.6)
335 | (192.9, 96.1) | (192.9, 118.6)
336 | (204.5, 96.1) | (204.5, 118.6)
337 | (216.0, 96.1) | (216.0, 118.6)
338 | (227.5, 96.1) | (227.5, 118.6)
339 | (239.1, 96.1) | (239.1, 118.6)
340 | (250.6, 96.1) | (250.6, 118.6)
341 | (262.1, 96.1) | (262.1, 118.6)
342 | (273.7, 96.1) | (273.7, 118.6)
343 | (285.2, 96.1) | (285.2, 118.6)
344 | (296.7, 96.1) | (296.7, 118.6)
345 | (308.2, 96.1) | (308.2, 118.6)
346 | (319.8, 96.1) | (319.8, 118.6)
347 | (331.3, 96.1) | (331.3, 118.6)
348 | (342.8, 96.1) | (342.8, 118.6)
349 | (354.4, 96.1) | (354.4, 118.6)
350 | (365.9, 96.1) | (365.9, 118.6)
351 | (377.4, 96.1) | (377.4, 118.6)
352 | (389.0, 96.1) | (389.0, 118.6)
353 | (400.5, 96.1) | (400.5, 118.6)
354 | (412.0, 96.1) | (412.0, 118.6)
355 | (423.5, 96.1) | (423.5, 118.6)
356 | (435.1, 96.1) | (435.1, 118.6)
357 | (446.6, 96.1) | (446.6, 118.6)
358 | (458.1, 96.1) | (458.1, 118.6)
359 | (469.7, 96.1) | (469.7, 118.6)
360 | (469.7, 107.2) | (469.7, 129.7)
361 | (458.1, 107.2) | (458.1, 129.7)
362 | (446.6, 107.2) | (446.6, 129.7)
363 | (435.1, 107.2) | (435.1, 129.7)
364 | (423.5, 107.2) | (423.5, 129.7)
365 | (412.0, 107.2) | (412.0, 129.7)
366 | (400.5, 107.2) | (400.5, 129.7)
367 | (389.0, 107.2) | (389.0, 129.7)
368 | (377.4, 107.2) | (377.4, 129.7)
369 | (365.9, 107.2) | (365.9, 129.7)
370 | (354.4, 107.2) | (354.4, 129.7)
371 | (342.8, 107.2) | (342.8, 129.7)
372 | (331.3, 107.2) | (331.3, 129.7)
373 | (319.8, 107.2) | (319.8, 129.7)
374 | (308.2, 107.2) | (308.2, 129.7)
375 | (296.7, 107.2) | (296.7, 129.7)
376 | (285.2, 107.2) | (285.2, 129.7)
377 | (273.7, 107.2) | (273.7, 129.7)
378 | (262.1, 107.2) | (262.1, 129.7)
379 | (250.6, 107.2) | (250.6, 129.7)
380 | (239.1, 107.2) | (239.1, 129.7)
381 | (227.5, 107.2) | (227.5, 129.7)
382 | (216.0, 107.2) | (216.0, 129.7)
383 | (204.5, 107.2) | (204.5, 129.7)
384 | (192.9, 107.2) | (192.9, 129.7)
385 | (181.4, 107.2) | (181.4, 129.7)
386 | (169.9, 107.2) | (169.9, 129.7)
387 | (158.4, 107.2) | (158.4, 129.7)
388 | (146.8, 107.2) | (146.8, 129.7)
389 | (135.3, 107.2) | (135.3, 129.7)
390 | (123.8, 107.2) | (123.8, 129.7)
391 | (112.2, 107.2) | (112.2, 129.7)
392 | (100.7, 107.2) | (100.7, 129.7)
393 | (89.2, 107.2) | (89.2, 129.7)
394 | (77.6, 107.2) | (77.6, 129.7)
395 | (66.1, 107.2) | (66.1, 129.7)
396 | (54.6, 107.2) | (54.6, 129.7)
397 | (43.1, 107.2) | (43.1, 129.7)
398 | (31.5, 107.2) | (31.5, 129.7)
399 | (20.0, 107.2) | (20.0, 129.7)
400 | (20.0, 118.3) | (20.0, 140.8)
401 | (31.5, 118.3) | (31.5, 140.8)
402 | (43.1, 118.3) | (43.1, 140.8)
403 | (54.6, 118.3) | (54.6, 140.8)
404 | (66.1, 118.3) | (66.1, 140.8)
405 | (77.7, 118.3) | (77.7, 140.8)
406 | (89.2, 118.3) | (89.2, 140.8)
407 | (100.7, 118.3) | (100.7, 140.8)
408 | (112.2, 118.3) | (112.2, 140.8)
409 | (123.8, 118.3) | (123.8, 140.8)
410 | (135.3, 118.3) | (135.3, 140.8)
411 | (146.8, 118.3) | (146.8, 140.8)
412 | (158.4, 118.3) | (158.4, 140.8)
413 | (169.9, 118.3) | (169.9, 140.8)
414 | (181.4, 118.3) | (181.4, 140.8)
415 | (192.9, 118.3) | (192.9, 140.8)
416 | (204.5, 118.3) | (204.5, 140.8)
417 | (216.0, 118.3) | (216.0, 140.8)
418 | (227.5, 118.3) | (227.5, 140.8)
419 | (239.1, 118.3) | (239.1, 140.8)
420 | (250.6, 118.3) | (250.6, 140.8)
421 | (262.1, 118.3) | (262.1, 140.8)
422 | (273.7, 118.3) | (273.7, 140.8)
423 | (285.2, 118.3) | (285.2, 140.8)
424 | (296.7, 118.3) | (296.7, 140.8)
425 | (308.2, 118.3) | (308.2, 140.8)
426 | (319.8, 118.3) | (319.8, 140.8)
427 | (331.3, 118.3) | (331.3, 140.8)
428 | (342.8, 118.3) | (342.8, 140.8)
429 | (354.4, 118.3) | (354.4, 140.8)
430 | (365.9, 118.3) | (365.9, 140.8)
431 | (377.4, 118.3) | (377.4, 140.8)
432 | (389.0, 118.3) | (389.0, 140.8)
433 | (400.5, 118.3) | (400.5, 140.8)
434 | (412.0, 118.3) | (412.0, 140.8)
435 | (423.5, 118.3) | (423.5, 140.8)
436 | (435.1, 118.3) | (435.1, 140.8)
437 | (446.6, 118.3) | (446.6, 140.8)
438 | (458.1, 118.3) | (458.1, 140.8)
439 | (469.7, 118.3) | (469.7, 140.8)
440 | (469.7, 129.4) | (469.7, 151.9)
441 | (458.1, 129.4) | (458.1, 151.9)
442 | (446.6, 129.4) | (446.6, 151.9)
443 | (435.1, 129.4) | (435.1, 151.9)
444 | (423.5, 129.4) | (423.5, 151.9)
445 | (412.0, 129.4) | (412.0, 151.9)
446 | (400.5, 129.4) | (400.5, 151.9)
447 | (389.0, 129.4) | (389.0, 151.9)
448 | (377.4, 129.4) | (377.4, 151.9)
449 | (365.9, 129.4) | (365.9, 151.9)
450 | (354.4, 129.4) | (354.4, 151.9)
451 | (342.8, 129.4) | (342.8, 151.9)
452 | (331.3, 129.4) | (331.3, 151.9)
453 | (319.8, 129.4) | (319.8, 151.9)
454 | (308.2, 129.4) | (308.2, 151.9)
455 | (296.7, 129.4) | (296.7, 151.9)
456 | (285.2, 129.4) | (285.2, 151.9)
457 | (273.7, 129.4) | (273.7, 151.9)
458 | (262.1, 129.4) | (262.1, 151.9)
459 | (250.6, 129.4) | (250.6, 151.9)
460 | (239.1, 129.4) | (239.1, 151.9)
461 | (227.5, 129.4) | (227.5, 151.9)
462 | (216.0, 129.4) | (216.0, 151.9)
463 | (204.5, 129.4) | (204.5, 151.9)
464 | (192.9, 129.4) | (192.9, 151.9)
465 | (181.4, 129.4) | (181.4, 151.9)
466 | (169.9, 129.4) | (169.9, 151.9)
467 | (158.4, 129.4) | (158.4, 151.9)
468 | (146.8, 129.4) | (146.8, 151.9)
469 | (135.3, 129.4) | (135.3, 151.9)
470 | (123.8, 129.4) | (123.8, 151.9)
471 | (112.2, 129.4) | (112.2, 151.9)
472 | (100.7, 129.4) | (100.7, 151.9)
473 | (89.2, 129.4) | (89.2, 151.9)
474 | (77.6, 129.4) | (77.6, 151.9)
475 | (66.1, 129.4) | (66.1, 151.9)
476 | (54.6, 129.4) | (54.6, 151.9)
477 | (43.1, 129.4) | (43.1, 151.9)
478 | (31.5, 129.4) | (31.5, 151.9)
479 | (20.0, 129.4) | (20.0, 151.9)
480 | (20.0, 140.5) | (20.0, 163.0)
481 | (31.5, 140.5) | (31.5, 163.0)
482 | (43.1, 140.5) | (43.1, 163.0)
483 | (54.6, 140.5) | (54.6, 163.0)
484 | (66.1, 140.5) | (66.1, 163.0)
485 | (77.7, 140.5) | (77.7, 163.0)
486 | (89.2, 140.5) | (89.2, 163.0)
487 | (100.7, 140.5) | (100.7, 163.0)
488 | (112.2, 140.5) | (112.2, 163.0)
489 | (123.8, 140.5) | (123.8, 163.0)
490 | (135.3, 140.5) | (135.3, 163.0)
491 | (146.8, 140.5) | (146.8, 163.0)
492 | (158.4, 140.5) | (158.4, 163.0)
493 | (169.9, 140.5) | (169.9, 163.0)
494 | (181.4, 140.5) | (181.4, 163.0)
495 | (192.9, 140.5) | (192.9, 163.0)
496 | (204.5, 140.5) | (204.5, 163.0)
497 | (216.0, 140.5) | (216.0, 163.0)
498 | (227.5, 140.5) | (227.5, 163.0)
499 | (239.1, 140.5) | (239.1, 163.0)
500 | (250.6, 140.5) | (250.6, 163.0)
501 | (262.1, 140.5) | (262.1, 163.0)
502 | (273.7, 140.5) | (273.7, 163.0)
503 | (285.2, 140.5) | (285.2, 163.0)
504 | (296.7, 140.5) | (296.7, 163.0)
505 | (308.2, 140.5) | (308.2, 163.0)
506 | (319.8, 140.5) | (319.8, 163.0)
507 | (331.3, 140.5) | (331.3, 163.0)
508 | (342.8, 140.5) | (342.8, 163.0)
509 | (354.4, 140.5) | (354.4, 163.0)
510 | (365.9, 140.5) | (365.9, 163.0)
511 | (377.4, 140.5) | (377.4, 163.0)
512 | (389.0, 140.5) | (389.0, 163.0)
513 | (400.5, 140.5) | (400.5, 163.0)
514 | (412.0, 140.5) | (412.0, 163.0)
515 | (423.5, 140.5) | (423.5, 163.0)
516 | (435.1, 140.5) | (435.1, 163.0)
517 | (446.6, 140.5) | (446.6, 163.0)
518 | (458.1, 140.5) | (458.1, 163.0)
519 | (469.7, 140.5) | (469.7, 163.0)
520 | (469.7, 151.5) | (469.7, 174.0)
521 | (458.1, 151.5) | (458.1, 174.0)
522 | (446.6, 151.5) | (446.6, 174.0)
523 | (435.1, 151.5) | (435.1, 174.0)
524 | (423.5, 151.5) | (423.5, 174.0)
525 | (412.0, 151.5) | (412.0, 174.0)
526 | (400.5, 151.5) | (400.5, 174.0)
527 | (389.0, 151.5) | (389.0, 174.0)
528 | (377.4, 151.5) | (377.4, 174.0)
529 | (365.9, 151.5) | (365.9, 174.0)
530 | (354.4, 151.5) | (354.4, 174.0)
531 | (342.8, 151.5) | (342.8, 174.0)
532 | (331.3, 151.5) | (331.3, 174.0)
533 | (319.8, 151.5) | (319.8, 174.0)
534 | (308.2, 151.5) | (308.2, 174.0)
535 | (296.7, 151.5) | (296.7, 174.0)
536 | (285.2, 151.5) | (285.2, 174.0)
537 | (273.7, 151.5) | (273.7, 174.0)
538 | (262.1, 151.5) | (262.1, 174.0)
539 | (250.6, 151.5) | (250.6, 174.0)
540 | (239.1, 151.5) | (239.1, 174.0)
541 | (227.5, 151.5) | (227.5, 174.0)
542 | (216.0, 151.5) | (216.0, 174.0)
543 | (204.5, 151.5) | (204.5, 174.0)
544 | (192.9, 151.5) | (192.9, 174.0)
545 | (181.4, 151.5) | (181.4, 174.0)
546 | (169.9, 151.5) | (169.9, 174.0)
547 | (158.4, 151.5) | (158.4, 174.0)
548 | (146.8, 151.5) | (146.8, 174.0)
549 | (135.3, 151.5) | (135.3, 174.0)
550 | (123.8, 151.5) | (123.8, 174.0)
551 | (112.2, 151.5) | (112.2, 174.0)
552 | (100.7, 151.5) | (100.7, 174.0)
553 | (89.2, 151.5) | (89.2, 174.0)
554 | (77.6, 151.5) | (77.6, 174.0)
555 | (66.1, 151.5) | (66.1, 174.0)
556 | (54.6, 151.5) | (54.6, 174.0)
557 | (43.1, 151.5) | (43.1, 174.0)
558 | (31.5, 151.5) | (31.5, 174.0)
559 | (20.0, 151.5) | (20.0, 174.0)
560 | (20.0, 162.6) | (20.0, 185.1)
561 | (31.5, 162.6) | (31.5, 185.1)
562 | (43.1, 162.6) | (43.1, 185.1)
563 | (54.6, 162.6) | (54.6, 185.1)
564 | (66.1, 162.6) | (66.1, 185.1)
565 | (77.7, 162.6) | (77.7, 185.1)
566 | (89.2, 162.6) | (89.2, 185.1)
567 | (100.7, 162.6) | (100.7, 185.1)
568 | (112.2, 162.6) | (112.2, 185.1)
569 | (123.8, 162.6) | (123.8, 185.1)
570 | (135.3, 162.6) | (135.3, 185.1)
571 | (146.8, 162.6) | (146.8, 185.1)
572 | (158.4, 162.6) | (158.4, 185.1)
573 | (169.9, 162.6) | (169.9, 185.1)
574 | (181.4, 162.6) | (181.4, 185.1)
575 | (192.9, 162.6) | (192.9, 185.1)
576 | (204.5, 162.6) | (204.5, 185.1)
577 | (216.0, 162.6) | (216.0, 185.1)
578 | (227.5, 162.6) | (227.5, 185.1)
579 | (239.1, 162.6) | (239.1, 185.1)
580 | (250.6, 162.6) | (250.6, 185.1)
581 | (262.1, 162.6) | (262.1, 185.1)
582 | (273.7, 162.6) | (273.7, 185.1)
583 | (285.2, 162.6) | (285.2, 185.1)
584 | (296.7, 162.6) | (296.7, 185.1)
585 | (308.2, 162.6) | (308.2, 185.1)
586 | (319.8, 162.6) | (319.8, 185.1)
587 | (331.3, 162.6) | (331.3, 185.1)
588 | (342.8, 162.6) | (342.8, 185.1)
589 | (354.4, 162.6) | (354.4, 185.1)
590 | (365.9, 162.6) | (365.9, 185.1)
591 | (377.4, 162.6) | (377.4, 185.1)
592 | (389.0, 162.6) | (389.0, 185.1)
593 | (400.5, 162.6) | (400.5, 185.1)
594 | (412.0, 162.6) | (412.0, 185.1)
595 | (423.5, 162.6) | (423.5, 185.1)
596 | (435.1, 162.6) | (435.1, 185.1)
597 | (446.6, 162.6) | (446.6, 185.1)
598 | (458.1, 162.6) | (458.1, 185.1)
599 | (469.7, 162.6) | (469.7, 185.1)
600 | (469.7, 173.7) | (469.7, 196.2)
601 | (458.1, 173.7) | (458.1, 196.2)
602 | (446.6, 173.7) | (446.6, 196.2)
603 | (435.1, 173.7) | (435.1, 196.2)
604 | (423.5, 173.7) | (423.5, 196.2)
605 | (412.0, 173.7) | (412.0, 196.2)
606 | (400.5, 173.7) | (400.5, 196.2)
607 | (389.0, 173.7) | (389.0, 196.2)
608 | (377.4, 173.7) | (377.4, 196.2)
609 | (365.9, 173.7) | (365.9, 196.2)
610 | (354.4, 173.7) | (354.4, 196.2)
611 | (342.8, 173.7) | (342.8, 196.2)
612 | (331.3, 173.7) | (331.3, 196.2)
613 | (319.8, 173.7) | (319.8, 196.2)
614 | (308.2, 173.7) | (308.2, 196.2)
615 | (296.7, 173.7) | (296.7, 196.2)
616 | (285.2, 173.7) | (285.2, 196.2)
617 | (273.7, 173.7) | (273.7, 196.2)
618 | (262.1, 173.7) | (262.1, 196.2)
619 | (250.6, 173.7) | (250.6, 196.2)
620 | (239.1, 173.7) | (239.1, 196.2)
621 | (227.5, 173.7) | (227.5, 196.2)
622 | (216.0, 173.7) | (216.0, 196.2)
623 | (204.5, 173.7) | (204.5, 196.2)
624 | (192.9, 173.7) | (192.9, 196.2)
625 | (181.4, 173.7) | (181.4, 196.2)
626 | (169.9, 173.7) | (169.9, 196.2)
627 | (158.4, 173.7) | (158.4, 196.2)
628 | (146.8, 173.7) | (146.8, 196.2)
629 | (135.3, 173.7) | (135.3, 196.2)
630 | (123.8, 173.7) | (123.8, 196.2)
631 | (112.2, 173.7) | (112.2, 196.2)
632 | (100.7, 173.7) | (100.7, 196.2)
633 | (89.2, 173.7) | (89.2, 196.2)
634 | (77.6, 173.7) | (77.6, 196.2)
635 | (66.1, 173.7) | (66.1, 196.2)
636 | (54.6, 173.7) | (54.6, 196.2)
637 | (43.1, 173.7) | (43.1, 196.2)
638 | (31.5, 173.7) | (31.5, 196.2)
639 | (20.0, 173.7) | (20.0, 196.2)
640 | (20.0, 184.8) | (20.0, 207.3)
641 | (31.5, 184.8) | (31.5, 207.3)
642 | (43.1, 184.8) | (43.1, 207.3)
643 | (54.6, 184.8) | (54.6, 207.3)
644 | (66.1, 184.8) | (66.1, 207.3)
645 | (77.7, 184.8) | (77.7, 207.3)
646 | (89.2, 184.8) | (89.2, 207.3)
647 | (100.7, 184.8) | (100.7, 207.3)
648 | (112.2, 184.8) | (112.2, 207.3)
649 | (123.8, 184.8) | (123.8, 207.3)
650 | (135.3, 184.8) | (135.3, 207.3)
651 | (146.8, 184.8) | (146.8, 207.3)
652 | (158.4, 184.8) | (158.4, 207.3)
653 | (169.9, 184.8) | (169.9, 207.3)
654 | (181.4, 184.8) | (181.4, 207.3)
655 | (192.9, 184.8) | (192.9, 207.3)
656 | (204.5, 184.8) | (204.5, 207.3)
657 | (216.0, 184.8) | (216.0, 207.3)
658 | (227.5, 184.8) | (227.5, 207.3)
659 | (239.1, 184.8) | (239.1, 207.3)
660 | (250.6, 184.8) | (250.6, 207.3)
661 | (262.1, 184.8) | (262.1, 207.3)
662 | (273.7, 184.8) | (273.7, 207.3)
663 | (285.2, 184.8) | (285.2, 207.3)
664 | (296.7, 184.8) | (296.7, 207.3)
665 | (308.2, 184.8) | (308.2, 207.3)
666 | (319.8, 184.8) | (319.8, 207.3)
667 | (331.3, 184.8) | (331.3, 207.3)
668 | (342.8, 184.8) | (342.8, 207.3)
669 | (354.4, 184.8) | (354.4, 207.3)
670 | (365.9, 184.8) | (365.9, 207.3)
671 | (377.4, 184.8) | (377.4, 207.3)
672 | (389.0, 184.8) | (389.0, 207.3)
673 | (400.5, 184.8) | (400.5, 207.3)
674 | (412.0, 184.8) | (412.0, 207.3)
675 | (423.5, 184.8) | (423.5, 207.3)
676 | (435.1, 184.8) | (435.1, 207.3)
677 | (446.6, 184.8) | (446.6, 207.3)
678 | (458.1, 184.8) | (458.1, 207.3)
679 | (469.7, 184.8) | (469.7, 207.3)
680 | (469.7, 195.9) | (469.7, 218.4)
681 | (458.1, 195.9) | (458.1, 218.4)
682 | (446.6, 195.9) | (446.6, 218.4)
683 | (435.1, 195.9) | (435.1, 218.4)
684 | (423.5, 195.9) | (423.5, 218.4)
685 | (412.0, 195.9) | (412.0, 218.4)
686 | (400.5, 195.9) | (400.5, 218.4)
687 | (389.0, 195.9) | (389.0, 218.4)
688 | (377.4, 195.9) | (377.4, 218.4)
689 | (365.9, 195.9) | (365.9, 218.4)
690 | (354.4, 195.9) | (354.4, 218.4)
691 | (342.8, 195.9) | (342.8, 218.4)
692 | (331.3, 195.9) | (331.3, 218.4)
693 | (319.8, 195.9) | (319.8, 218.4)
694 | (308.2, 195.9) | (308.2, 218.4)
695 | (296.7, 195.9) | (296.7, 218.4)
696 | (285.2, 195.9) | (285.2, 218.4)
697 | (273.7, 195.9) | (273.7, 218.4)
698 | (262.1, 195.9) | (262.1, 218.4)
699 | (250.6, 195.9) | (250.6, 218.4)
700 | (239.1, 195.9) | (239.1, 218.4)
701 | (227.5, 195.9) | (227.5, 218.4)
702 | (216.0, 195.9) | (216.0, 218.4)
703 | (204.5, 195.9) | (204.5, 218.4)
704 | (192.9, 195.9) | (192.9, 218.4)
705 | (181.4, 195.9) | (181.4, 218.4)
706 | (169.9, 195.9) | (169.9, 218.4)
707 | (158.4, 195.9) | (158.4, 218.4)
708 | (146.8, 195.9) | (146.8, 218.4)
709 | (135.3, 195.9) | (135.3, 218.4)
710 | (123.8, 195.9) | (123.8, 218.4)
711 | (112.2, 195.9) | (112.2, 218.4)
712 | (100.7, 195.9) | (100.7, 218.4)
713 | (89.2, 195.9) | (89.2, 218.4)
714 | (77.6, 195.9) | (77.6, 218.4)
715 | (66.1, 195.9) | (66.1, 218.4)
716 | (54.6, 195.9) | (54.6, 218.4)
717 | (43.1, 195.9) | (43.1, 218.4)
718 | (31.5, 195.9) | (31.5, 218.4)
719 | (20.0, 195.9) | (20.0, 218.4)
720 | (20.0, 206.9) | (20.0, 229.4)
721 | (31.5, 206.9) | (31.5, 229.4)
722 | (43.1, 206.9) | (43.1, 229.4)
723 | (54.6, 206.9) | (54.6, 229.4)
724 | (66.1, 206.9) | (66.1, 229.4)
725 | (77.7, 206.9) | (77.7, 229.4)
726 | (89.2, 206.9) | (89.2, 229.4)
727 | (100.7, 206.9) | (100.7, 229.4)
728 | (112.2, 206.9) | (112.2, 229.4)
729 | (123.8, 206.9) | (123.8, 229.4)
730 | (135.3, 206.9) | (135.3, 229.4)
731 | (146.8, 206.9) | (146.8, 229.4)
732 | (158.4, 206.9) | (158.4, 229.4)
733 | (169.9, 206.9) | (169.9, 229.4)
734 | (181.4, 206.9) | (181.4, 229.4)
735 | (192.9, 206.9) | (192.9, 229.4)
736 | (204.5, 206.9) | (204.5, 229.4)
737 | (216.0, 206.9) | (216.0, 229.4)
738 | (227.5, 206.9) | (227.5, 229.4)
739 | (239.1, 206.9) | (239.1, 229.4)
740 | (250.6, 206.9) | (250.6, 229.4)
741 | (262.1, 206.9) | (262.1, 229.4)
742 | (273.7, 206.9) | (273.7, 229.4)
743 | (285.2, 206.9) | (285.2, 229.4)
744 | (296.7, 206.9) | (296.7, 229.4)
745 | (308.2, 206.9) | (308.2, 229.4)
746 | (319.8, 206.9) | (319.8, 229.4)
747 | (331.3, 206.9) | (331.3, 229.4)
748 | (342.8, 206.9) | (342.8, 229.4)
749 | (354.4, 206.9) | (354.4, 229.4)
750 | (365.9, 206.9) | (365.9, 229.4)
751 | (377.4, 206.9) | (377.4, 229.4)
752 | (389.0, 206.9) | (389.0, 229.4)
753 | (400.5, 206.9) | (400.5, 229.4)
754 | (412.0, 206.9) | (412.0, 229.4)
755 | (423.5, 206.9) | (423.5, 229.4)
756 | (435.1, 206.9) | (435.1, 229.4)
757 | (446.6, 206.9) | (446.6, 229.4)
758 | (458.1, 206.9) | (458.1, 229.4)
759 | (469.7, 206.9) | (469.7, 229.4)
760 | (469.7, 218.0) | (469.7, 240.5)
761 | (458.1, 218.0) | (458.1, 240.5)
762 | (446.6, 218.0) | (446.6, 240.5)
763 | (435.1, 218.0) | (435.1, 240.5)
764 | (423.5, 218.0) | (423.5, 240.5)
765 | (412.0, 218.0) | (412.0, 240.5)
766 | (400.5, 218.0) | (400.5, 240.5)
767 | (389.0, 218.0) | (389.0, 240.5)
768 | (377.4, 218.0) | (377.4, 240.5)
769 | (365.9, 218.0) | (365.9, 240.5)
770 | (354.4, 218.0) | (354.4, 240.5)
771 | (342.8, 218.0) | (342.8, 240.5)
772 | (331.3, 218.0) | (331.3, 240.5)
773 | (319.8, 218.0) | (319.8, 240.5)
774 | (308.2, 218.0) | (308.2, 240.5)
775 | (296.7, 218.0) | (296.7, 240.5)
776 | (285.2, 218.0) | (285.2, 240.5)
777 | (273.7, 218.0) | (273.7, 240.5)
778 | (262.1, 218.0) | (262.1, 240.5)
779 | (250.6, 218.0) | (250.6, 240.5)
780 | (239.1, 218.0) | (239.1, 240.5)
781 | (227.5, 218.0) | (227.5, 240.5)
782 | (216.0, 218.0) | (216.0, 240.5)
783 | (204.5, 218.0) | (204.5, 240.5)
784 | (192.9, 218.0) | (192.9, 240.5)
785 | (181.4, 218.0) | (181.4, 240.5)
786 | (169.9, 218.0) | (169.9, 240.5)
787 | (158.4, 218.0) | (158.4, 240.5)
788 | (146.8, 218.0) | (146.8, 240.5)
789 | (135.3, 218.0) | (135.3, 240.5)
790 | (123.8, 218.0) | (123.8, 240.5)
791 | (112.2, 218.0) | (112.2, 240.5)
792 | (100.7, 218.0) | (100.7, 240.5)
793 | (89.2, 218.0) | (89.2, 240.5)
794 | (77.6, 218.0) | (77.6, 240.5)
795 | (66.1, 218.0) | (66.1, 240.5)
796 | (54.6, 218.0) | (54.6, 240.5)
797 | (43.1, 218.0) | (43.1, 240.5)
798 | (31.5, 218.0) | (31.5, 240.5)
799 | (20.0, 218.0) | (20.0, 240.5)
800 | (20.0, 229.1) | (20.0, 251.6)
801 | (31.5, 229.1) | (31.5, 251.6)
802 | (43.1, 229.1) | (43.1, 251.6)
803 | (54.6, 229.1) | (54.6, 251.6)
804 | (66.1, 229.1) | (66.1, 251.6)
805 | (77.7, 229.1) | (77.7, 251.6)
806 | (89.2, 229.1) | (89.2, 251.6)
807 | (100.7, 229.1) | (100.7, 251.6)
808 | (112.2, 229.1) | (112.2, 251.6)
809 | (123.8, 229.1) | (123.8, 251.6)
810 | (135.3, 229.1) | (135.3, 251.6)
811 | (146.8, 229.1) | (146.8, 251.6)
812 | (158.4, 229.1) | (158.4, 251.6)
813 | (169.9, 229.1) | (169.9, 251.6)
814 | (181.4, 229.1) | (181.4, 251.6)
815 | (192.9, 229.1) | (192.9, 251.6)
816 | (204.5, 229.1) | (204.5, 251.6)
817 | (216.0, 229.1) | (216.0, 251.6)
818 | (227.5, 229.1) | (227.5, 251.6)
819 | (239.1, 229.1) | (239.1, 251.6)
820 | (250.6, 229.1) | (250.6, 251.6)
821 | (262.1, 229.1) | (262.1, 251.6)
822 | (273.7, 229.1) | (273.7, 251.6)
823 | (285.2, 229.1) | (285.2, 251.6)
824 | (296.7, 229.1) | (296.7, 251.6)
825 | (308.2, 229.1) | (308.2, 251.6)
826 | (319.8, 229.1) | (319.8, 251.6)
827 | (331.3, 229.1) | (331.3, 251.6)
828 | (342.8, 229.1) | (342.8, 251.6)
829 | (354.4, 229.1) | (354.4, 251.6)
830 | (365.9, 229.1) | (365.9, 251.6)
831 | (377.4, 229.1) | (377.4, 251.6)
832 | (389.0, 229.1) | (389.0, 251.6)
833 | (400.5, 229.1) | (400.5, 251.6)
834 | (412.0, 229.1) | (412.0, 251.6)
835 | (423.5, 229.1) | (423.5, 251.6)
836 | (435.1, 229.1) | (435.1, 251.6)
837 | (446.6, 229.1) | (446.6, 251.6)
838 | (458.1, 229.1) | (458.1, 251.6)
839 | (469.7, 229.1) | (469.7, 251.6)
840 | (469.7, 240.2) | (469.7, 262.7)
841 | (458.1, 240.2) | (458.1, 262.7)
842 | (446.6, 240.2) | (446.6, 262.7)
843 | (435.1, 240.2) | (435.1, 262.7)
844 | (423.5, 240.2) | (423.5, 262.7)
845 | (412.0, 240.2) | (412.0, 262.7)
846 | (400.5, 240.2) | (400.5, 262.7)
847 | (389.0, 240.2) | (389.0, 262.7)
848 | (377.4, 240.2) | (377.4, 262.7)
849 | (365.9, 240.2) | (365.9, 262.7)
850 | (354.4, 240.2) | (354.4, 262.7)
851 | (342.8, 240.2) | (342.8, 262.7)
852 | (331.3, 240.2) | (331.3, 262.7)
853 | (319.8, 240.2) | (319.8, 262.7)
854 | (308.2, 240.2) | (308.2, 262.7)
855 | (296.7, 240.2) | (296.7, 262.7)
856 | (285.2, 240.2) | (285.2, 262.7)
857 | (273.7, 240.2) | (273.7, 262.7)
858 | (262.1, 240.2) | (262.1, 262.7)
859 | (250.6, 240.2) | (250.6, 262.7)
860 | (239.1, 240.2) | (239.1, 262.7)
861 | (227.5, 240.2) | (227.5, 262.7)
862 | (216.0, 240.2) | (216.0, 262.7)
863 | (204.5, 240.2) | (204.5, 262.7)
864 | (192.9, 240.2) | (192.9, 262.7)
865 | (181.4, 240.2) | (181.4, 262.7)
866 | (169.9, 240.2) | (169.9, 262.7)
867 | (158.4, 240.2) | (158.4, 262.7)
868 | (146.8, 240.2) | (146.8, 262.7)
869 | (135.3, 240.2) | (135.3, 262.7)
870 | (123.8, 240.2) | (123.8, 262.7)
871 | (112.2, 240.2) | (112.2, 262.7)
872 | (100.7, 240.2) | (100.7, 262.7)
873 | (89.2, 240.2) | (89.2, 262.7)
874 | (77.6, 240.2) | (77.6, 262.7)
875 | (66.1, 240.2) | (66.1, 262.7)
876 | (54.6, 240.2) | (54.6, 262.7)
877 | (43.1, 240.2) | (43.1, 262.7)
878 | (31.5, 240.2) | (31.5, 262.7)
879 | (20.0, 240.2) | (20.0, 262.7)
880 | (20.0, 251.3) | (20.0, 273.8)
881 | (31.5, 251.3) | (31.5, 273.8)
882 | (43.1, 251.3) | (43.1, 273.8)
883 | (54.6, 251.3) | (54.6, 273.8)
884 | (66.1, 251.3) | (66.1, 273.8)
885 | (77.7, 251.3) | (77.7, 273.8)
886 | (89.2, 251.3) | (89.2, 273.8)
887 | (100.7, 251.3) | (100.7, 273.8)
888 | (112.2, 251.3) | (112.2, 273.8)
889 | (123.8, 251.3) | (123.8, 273.8)
890 | (135.3, 251.3) | (135.3, 273.8)
891 | (146.8, 251.3) | (146.8, 273.8)
892 | (158.4, 251.3) | (158.4, 273.8)
893 | (169.9, 251.3) | (169.9, 273.8)
894 | (181.4, 251.3) | (181.4, 273.8)
895 | (192.9, 251.3) | (192.9, 273.8)
896 | (204.5, 251.3) | (204.5, 273.8)
897 | (216.0, 251.3) | (216.0, 273.8)
898 | (227.5, 251.3) | (227.5, 273.8)
899 | (239.1, 251.3) | (239.1, 273.8)
900 | (250.6, 251.3) | (250.6, 273.8)
901 | (262.1, 251.3) | (262.1, 273.8)
902 | (273.7, 251.3) | (273.7, 273.8)
903 | (285.2, 251.3) | (285.2, 273.8)
904 | (296.7, 251.3) | (296.7, 273.8)
905 | (308.2, 251.3) | (308.2, 273.8)
906 | (319.8, 251.3) | (319.8, 273.8)
907 | (331.3, 251.3) | (331.3, 273.8)
908 | (342.8, 251.3) | (342.8, 273.8)
909 | (354.4, 251.3) | (354.4, 273.8)
910 | (365.9, 251.3) | (365.9, 273.8)
911 | (377.4, 251.3) | (377.4, 273.8)
912 | (389.0, 251.3) | (389.0, 273.8)
913 | (400.5, 251.3) | (400.5, 273.8)
914 | (412.0, 251.3) | (412.0, 273.8)
915 | (423.5, 251.3) | (423.5, 273.8)
916 | (435.1, 251.3) | (435.1, 273.8)
917 | (446.6, 251.3) | (446.6, 273.8)
918 | (458.1, 251.3) | (458.1, 273.8)
919 | (469.7, 251.3) | (469.7, 273.8)
920 | (469.7, 262.3) | (469.7, 284.8)
921 | (458.1, 262.3) | (458.1, 284.8)
922 | (446.6, 262.3) | (446.6, 284.8)
923 | (435.1, 262.3) | (435.1, 284.8)
924 | (423.5, 262.3) | (423.5, 284.8)
925 | (412.0, 262.3) | (412.0, 284.8)
926 | (400.5, 262.3) | (400.5, 284.8)
927 | (389.0, 262.3) | (389.0, 284.8)
928 | (377.4, 262.3) | (377.4, 284.8)
929 | (365.9, 262.3) | (365.9, 284.8)
930 | (354.4, 262.3) | (354.4, 284.8)
931 | (342.8, 262.3) | (342.8, 284.8)
932 | (331.3, 262.3) | (331.3, 284.8)
933 | (319.8, 262.3) | (319.8, 284.8)
934 | (308.2, 262.3) | (308.2, 284.8)
935 | (296.7, 262.3) | (296.7, 284.8)
936 | (285.2, 262.3) | (285.2, 284.8)
937 | (273.7, 262.3) | (273.7, 284.8)
938 | (262.1, 262.3) | (262.1, 284.8)
939 | (250.6, 262.3) | (250.6, 284.8)
940 | (239.1, 262.3) | (239.1, 284.8)
941 | (227.5, 262.3) | (227.5, 284.8)
942 | (216.0, 262.3) | (216.0, 284.8)
943 | (204.5, 262.3) | (204.5, 284.8)
944 | (192.9, 262.3) | (192.9, 284.8)
945 | (181.4, 262.3) | (181.4, 284.8)
946 | (169.9, 262.3) | (169.9, 284.8)
947 | (158.4, 262.3) | (158.4, 284.8)
948 | (146.8, 262.3) | (146.8, 284.8)
949 | (135.3, 262.3) | (135.3, 284.8)
950 | (123.8, 262.3) | (123.8, 284.8)
951 | (112.2, 262.3) | (112.2, 284.8)
952 | (100.7, 262.3) | (100.7, 284.8)
953 | (89.2, 262.3) | (89.2, 284.8)
954 | (77.6, 262.3) | (77.6, 284.8)
955 | (66.1, 262.3) | (66.1, 284.8)
956 | (54.6, 262.3) | (54.6, 284.8)
957 | (43.1, 262.3) | (43.1, 284.8)
958 | (31.5, 262.3) | (31.5, 284.8)
959 | (20.0, 262.3) | (20.0, 284.8)
960 | (20.0, 273.4) | (20.0, 295.9)
961 | (31.5, 273.4) | (31.5, 295.9)
962 | (43.1, 273.4) | (43.1, 295.9)
963 | (54.6, 273.4) | (54.6, 295.9)
964 | (66.1, 273.4) | (66.1, 295.9)
965 | (77.7, 273.4) | (77.7, 295.9)
966 | (89.2, 273.4) | (89.2, 295.9)
967 | (100.7, 273.4) | (100.7, 295.9)
968 | (112.2, 273.4) | (112.2, 295.9)
969 | (123.8, 273.4) | (123.8, 295.9)
970 | (135.3, 273.4) | (135.3, 295.9)
971 | (146.8, 273.4) | (146.8, 295.9)
972 | (158.4, 273.4) | (158.4, 295.9)
973 | (169.9, 273.4) | (169.9, 295.9)
974 | (181.4, 273.4) | (181.4, 295.9)
975 | (192.9, 273.4) | (192.9, 295.9)
976 | (204.5, 273.4) | (204.5, 295.9)
977 | (216.0, 273.4) | (216.0, 295.9)
978 | (227.5, 273.4) | (227.5, 295.9)
979 | (239.1, 273.4) | (239.1, 295.9)
980 | (250.6, 273.4) | (250.6, 295.9)
981 | (262.1, 273.4) | (262.1, 295.9)
982 | (273.7, 273.4) | (273.7, 295.9)
983 | (285.2, 273.4) | (285.2, 295.9)
984 | (296.7, 273.4) | (296.7, 295.9)
985 | (308.2, 273.4) | (308.2, 295.9)
986 | (319.8, 273.4) | (319.8, 295.9)
987 | (331.3, 273.4) | (331.3, 295.9)
988 | (342.8, 273.4) | (342.8, 295.9)
989 | (354.4, 273.4) | (354.4, 295.9)
990 | (365.9, 273.4) | (365.9, 295.9)
991 | (377.4, 273.4) | (377.4, 295.9)
992 | (389.0, 273.4) | (389.0, 295.9)
993 | (400.5, 273.4) | (400.5, 295.9)
994 | (412.0, 273.4) | (412.0, 295.9)
995 | (423.5, 273.4) | (423.5, 295.9)
996 | (435.1, 273.4) | (435.1, 295.9)
997 | (446.6, 273.4) | (446.6, 295.9)
998 | (458.1, 273.4) | (458.1, 295.9)
999 | (469.7, 273.4) | (469.7, 295.9)
1000| (469.7, 284.5) | (469.7, 307.0)
1001| (458.1, 284.5) | (458.1, 307.0)
1002| (446.6, 284.5) | (446.6, 307.0)
1003| (435.1, 284.5) | (435.1, 307.0)
1004| (423.5, 284.5) | (423.5, 307.0)
1005| (412.0, 284.5) | (412.0, 307.0)
1006| (400.5, 284.5) | (400.5, 307.0)
1007| (389.0, 284.5) | (389.0, 307.0)
1008| (377.4, 284.5) | (377.4, 307.0)
1009| (365.9, 284.5) | (365.9, 307.0)
1010| (354.4, 284.5) | (354.4, 307.0)
1011| (342.8, 284.5) | (342.8, 307.0)
1012| (331.3, 284.5) | (331.3, 307.0)
1013| (319.8, 284.5) | (319.8, 307.0)
1014| (308.2, 284.5) | (308.2, 307.0)
1015| (296.7, 284.5) | (296.7, 307.0)
1016| (285.2, 284.5) | (285.2, 307.0)
1017| (273.7, 284.5) | (273.7, 307.0)
1018| (262.1, 284.5) | (262.1, 307.0)
1019| (250.6, 284.5) | (250.6, 307.0)
1020| (239.1, 284.5) | (239.1, 307.0)
1021| (227.5, 284.5) | (227.5, 307.0)
1022| (216.0, 284.5) | (216.0, 307.0)
1023| (204.5, 284.5) | (204.5, 307.0)
1024| (192.9, 284.5) | (192.9, 307.0)
1025| (181.4, 284.5) | (181.4, 307.0)
1026| (169.9, 284.5) | (169.9, 307.0)
1027| (158.4, 284.5) | (158.4, 307.0)
1028| (146.8, 284.5) | (146.8, 307.0)
1029| (135.3, 284.5) | (135.3, 307.0)
1030| (123.8, 284.5) | (123.8, 307.0)
1031| (112.2, 284.5) | (112.2, 307.0)
1032| (100.7, 284.5) | (100.7, 307.0)
1033| (89.2, 284.5) | (89.2, 307.0)
1034| (77.6, 284.5) | (77.6, 307.0)
1035| (66.1, 284.5) | (66.1, 307.0)
1036| (54.6, 284.5) | (54.6, 307.0)
1037| (43.1, 284.5) | (43.1, 307.0)
1038| (31.5, 284.5) | (31.5, 307.0)
1039| (20.0, 284.5) | (20.0, 307.0)
1040| (20.0, 295.6) | (20.0, 318.1)
1041| (31.5, 295.6) | (31.5, 318.1)
1042| (43.1, 295.6) | (43.1, 318.1)
1043| (54.6, 295.6) | (54.6, 318.1)
1044| (66.1, 295.6) | (66.1, 318.1)
1045| (77.7, 295.6) | (77.7, 318.1)
1046| (89.2, 295.6) | (89.2, 318.1)
1047| (100.7, 295.6) | (100.7, 318.1)
1048| (112.2, 295.6) | (112.2, 318.1)
1049| (123.8, 295.6) | (123.8, 318.1)
1050| (135.3, 295.6) | (135.3, 318.1)
1051| (146.8, 295.6) | (146.8, 318.1)
1052| (158.4, 295.6) | (158.4, 318.1)
1053| (169.9, 295.6) | (169.9, 318.1)
1054| (181.4, 295.6) | (181.4, 318.1)
1055| (192.9, 295.6) | (192.9, 318.1)
1056| (204.5, 295.6) | (204.5, 318.1)
1057| (216.0, 295.6) | (216.0, 318.1)
1058| (227.5, 295.6) | (227.5, 318.1)
1059| (239.1, 295.6) | (239.1, 318.1)
1060| (250.6, 295.6) | (250.6, 318.1)
1061| (262.1, 295.6) | (262.1, 318.1)
1062| (273.7, 295.6) | (273.7, 318.1)
1063| (285.2, 295.6) | (285.2, 318.1)
1064| (296.7, 295.6) | (296.7, 318.1)
1065| (308.2, 295.6) | (308.2, 318.1)
1066| (319.8, 295.6) | (319.8, 318.1)
1067| (331.3, 295.6) | (331.3, 318.1)
1068| (342.8, 295.6) | (342.8, 318.1)
1069| (354.4, 295.6) | (354.4, 318.1)
1070| (365.9, 295.6) | (365.9, 318.1)
1071| (377.4, 295.6) | (377.4, 318.1)
1072| (389.0, 295.6) | (389.0, 318.1)
1073| (400.5, 295.6) | (400.5, 318.1)
1074| (412.0, 295.6) | (412.0, 318.1)
1075| (423.5, 295.6) | (423.5, 318.1)
1076| (435.1, 295.6) | (435.1, 318.1)
1077| (446.6, 295.6) | (446.6, 318.1)
1078| (458.1, 295.6) | (458.1, 318.1)
1079| (469.7, 295.6) | (469.7, 318.1)
1080| (469.7, 306.7) | (469.7, 329.2)
1081| (458.1, 306.7) | (458.1, 329.2)
1082| (446.6, 306.7) | (446.6, 329.2)
1083| (435.1, 306.7) | (435.1, 329.2)
1084| (423.5, 306.7) | (423.5, 329.2)
1085| (412.0, 306.7) | (412.0, 329.2)
1086| (400.5, 306.7) | (400.5, 329.2)
1087| (389.0, 306.7) | (389.0, 329.2)
1088| (377.4, 306.7) | (377.4, 329.2)
1089| (365.9, 306.7) | (365.9, 329.2)
1090| (354.4, 306.7) | (354.4, 329.2)
1091| (342.8, 306.7) | (342.8, 329.2)
1092| (331.3, 306.7) | (331.3, 329.2)
1093| (319.8, 306.7) | (319.8, 329.2)
1094| (308.2, 306.7) | (308.2, 329.2)
1095| (296.7, 306.7) | (296.7, 329.2)
1096| (285.2, 306.7) | (285.2, 329.2)
1097| (273.7, 306.7) | (273.7, 329.2)
1098| (262.1, 306.7) | (262.1, 329.2)
1099| (250.6, 306.7) | (250.6, 329.2)
1100| (239.1, 306.7) | (239.1, 329.2)
1101| (227.5, 306.7) | (227.5, 329.2)
1102| (216.0, 306.7) | (216.0, 329.2)
1103| (204.5, 306.7) | (204.5, 329.2)
1104| (192.9, 306.7) | (192.9, 329.2)
1105| (181.4, 306.7) | (181.4, 329.2)
1106| (169.9, 306.7) | (169.9, 329.2)
1107| (158.4, 306.7) | (158.4, 329.2)
1108| (146.8, 306.7) | (146.8, 329.2)
1109| (135.3, 306.7) | (135.3, 329.2)
1110| (123.8, 306.7) | (123.8, 329.2)
1111| (112.2, 306.7) | (112.2, 329.2)
1112| (100.7, 306.7) | (100.7, 329.2)
1113| (89.2, 306.7) | (89.2, 329.2)
1114| (77.6, 306.7) | (77.6, 329.2)
1115| (66.1, 306.7) | (66.1, 329.2)
1116| (54.6, 306.7) | (54.6, 329.2)
1117| (43.1, 306.7) | (43.1, 329.2)
1118| (31.5, 306.7) | (31.5, 329.2)
1119| (20.0, 306.7) | (20.0, 329.2)
1120| (20.0, 317.7) | (20.0, 340.2)
1121| (31.5, 317.7) | (31.5, 340.2)
1122| (43.1, 317.7) | (43.1, 340.2)
1123| (54.6, 317.7) | (54.6, 340.2)
1124| (66.1, 317.7) | (66.1, 340.2)
1125| (77.7, 317.7) | (77.7, 340.2)
1126| (89.2, 317.7) | (89.2, 340.2)
1127| (100.7, 317.7) | (100.7, 340.2)
1128| (112.2, 317.7) | (112.2, 340.2)
1129| (123.8, 317.7) | (123.8, 340.2)
1130| (135.3, 317.7) | (135.3, 340.2)
1131| (146.8, 317.7) | (146.8, 340.2)
1132| (158.4, 317.7) | (158.4, 340.2)
1133| (169.9, 317.7) | (169.9, 340.2)
1134| (181.4, 317.7) | (181.4, 340.2)
1135| (192.9, 317.7) | (192.9, 340.2)
1136| (204.5, 317.7) | (204.5, 340.2)
1137| (216.0, 317.7) | (216.0, 340.2)
1138| (227.5, 317.7) | (227.5, 340.2)
1139| (239.1, 317.7) | (239.1, 340.2)
1140| (250.6, 317.7) | (250.6, 340.2)
1141| (262.1, 317.7) | (262.1, 340.2)
1142| (273.7, 317.7) | (273.7, 340.2)
1143| (285.2, 317.7) | (285.2, 340.2)
1144| (296.7, 317.7) | (296.7, 340.2)
1145| (308.2, 317.7) | (308.2, 340.2)
1146| (319.8, 317.7) | (319.8, 340.2)
1147| (331.3, 317.7) | (331.3, 340.2)
1148| (342.8, 317.7) | (342.8, 340.2)
1149| (354.4, 317.7) | (354.4, 340.2)
1150| (365.9, 317.7) | (365.9, 340.2)
1151| (377.4, 317.7) | (377.4, 340.2)
1152| (389.0, 317.7) | (389.0, 340.2)
1153| (400.5, 317.7) | (400.5, 340.2)
1154| (412.0, 317.7) | (412.0, 340.2)
1155| (423.5, 317.7) | (423.5, 340.2)
1156| (435.1, 317.7) | (435.1, 340.2)
1157| (446.6, 317.7) | (446.6, 340.2)
1158| (458.1, 317.7) | (458.1, 340.2)
1159| (469.7, 317.7) | (469.7, 340.2)
1160| (469.7, 328.8) | (469.7, 351.3)
1161| (458.1, 328.8) | (458.1, 351.3)
1162| (446.6, 328.8) | (446.6, 351.3)
1163| (435.1, 328.8) | (435.1, 351.3)
1164| (423.5, 328.8) | (423.5, 351.3)
1165| (412.0, 328.8) | (412.0, 351.3)
1166| (400.5, 328.8) | (400.5, 351.3)
1167| (389.0, 328.8) | (389.0, 351.3)
1168| (377.4, 328.8) | (377.4, 351.3)
1169| (365.9, 328.8) | (365.9, 351.3)
1170| (354.4, 328.8) | (354.4, 351.3)
1171| (342.8, 328.8) | (342.8, 351.3)
1172| (331.3, 328.8) | (331.3, 351.3)
1173| (319.8, 328.8) | (319.8, 351.3)
1174| (308.2, 328.8) | (308.2, 351.3)
1175| (296.7, 328.8) | (296.7, 351.3)
1176| (285.2, 328.8) | (285.2, 351.3)
1177| (273.7, 328.8) | (273.7, 351.3)
1178| (262.1, 328.8) | (262.1, 351.3)
1179| (250.6, 328.8) | (250.6, 351.3)
1180| (239.1, 328.8) | (239.1, 351.3)
1181| (227.5, 328.8) | (227.5, 351.3)
1182| (216.0, 328.8) | (216.0, 351.3)
1183| (204.5, 328.8) | (204.5, 351.3)
1184| (192.9, 328.8) | (192.9, 351.3)
1185| (181.4, 328.8) | (181.4, 351.3)
1186| (169.9, 328.8) | (169.9, 351.3)
1187| (158.4, 328.8) | (158.4, 351.3)
1188| (146.8, 328.8) | (146.8, 351.3)
1189| (135.3, 328.8) | (135.3, 351.3)
1190| (123.8, 328.8) | (123.8, 351.3)
1191| (112.2, 328.8) | (112.2, 351.3)
1192| (100.7, 328.8) | (100.7, 351.3)
1193| (89.2, 328.8) | (89.2, 351.3)
1194| (77.6, 328.8) | (77.6, 351.3)
1195| (66.1, 328.8) | (66.1, 351.3)
1196| (54.6, 328.8) | (54.6, 351.3)
1197| (43.1, 328.8) | (43.1, 351.3)
1198| (31.5, 328.8) | (31.5, 351.3)
1199| (20.0, 328.8) | (20.0, 351.3)
1200| (20.0, 339.9) | (20.0, 362.4)
1201| (31.5, 339.9) | (31.5, 362.4)
1202| (43.1, 339.9) | (43.1, 362.4)
1203| (54.6, 339.9) | (54.6, 362.4)
1204| (66.1, 339.9) | (66.1, 362.4)
1205| (77.7, 339.9) | (77.7, 362.4)
1206| (89.2, 339.9) | (89.2, 362.4)
1207| (100.7, 339.9) | (100.7, 362.4)
1208| (112.2, 339.9) | (112.2, 362.4)
1209| (123.8, 339.9) | (123.8, 362.4)
1210| (135.3, 339.9) | (135.3, 362.4)
1211| (146.8, 339.9) | (146.8, 362.4)
1212| (158.4, 339.9) | (158.4, 362.4)
1213| (169.9, 339.9) | (169.9, 362.4)
1214| (181.4, 339.9) | (181.4, 362.4)
1215| (192.9, 339.9) | (192.9, 362.4)
1216| (204.5, 339.9) | (204.5, 362.4)
1217| (216.0, 339.9) | (216.0, 362.4)
1218| (227.5, 339.9) | (227.5, 362.4)
1219| (239.1, 339.9) | (239.1, 362.4)
1220| (250.6, 339.9) | (250.6, 362.4)
1221| (262.1, 339.9) | (262.1, 362.4)
1222| (273.7, 339.9) | (273.7, 362.4)
1223| (285.2, 339.9) | (285.2, 362.4)
1224| (296.7, 339.9) | (296.7, 362.4)
1225| (308.2, 339.9) | (308.2, 362.4)
1226| (319.8, 339.9) | (319.8, 362.4)
1227| (331.3, 339.9) | (331.3, 362.4)
1228| (342.8, 339.9) | (342.8, 362.4)
1229| (354.4, 339.9) | (354.4, 362.4)
1230| (365.9, 339.9) | (365.9, 362.4)
1231| (377.4, 339.9) | (377.4, 362.4)
1232| (389.0, 339.9) | (389.0, 362.4)
1233| (400.5, 339.9) | (400.5, 362.4)
1234| (412.0, 339.9) | (412.0, 362.4)
1235| (423.5, 339.9) | (423.5, 362.4)
1236| (435.1, 339.9) | (435.1, 362.4)
1237| (446.6, 339.9) | (446.6, 362.4)
1238| (458.1, 339.9) | (458.1, 362.4)
1239| (469.7, 339.9) | (469.7, 362.4)
1240| (469.7, 351.0) | (469.7, 373.5)
1241| (458.1, 351.0) | (458.1, 373.5)
1242| (446.6, 351.0) | (446.6, 373.5)
1243| (435.1, 351.0) | (435.1, 373.5)
1244| (423.5, 351.0) | (423.5, 373.5)
1245| (412.0, 351.0) | (412.0, 373.5)
1246| (400.5, 351.0) | (400.5, 373.5)
1247| (389.0, 351.0) | (389.0, 373.5)
1248| (377.4, 351.0) | (377.4, 373.5)
1249| (365.9, 351.0) | (365.9, 373.5)
1250| (354.4, 351.0) | (354.4, 373.5)
1251| (342.8, 351.0) | (342.8, 373.5)
1252| (331.3, 351.0) | (331.3, 373.5)
1253| (319.8, 351.0) | (319.8, 373.5)
1254| (308.2, 351.0) | (308.2, 373.5)
1255| (296.7, 351.0) | (296.7, 373.5)
1256| (285.2, 351.0) | (285.2, 373.5)
1257| (273.7, 351.0) | (273.7, 373.5)
1258| (262.1, 351.0) | (262.1, 373.5)
1259| (250.6, 351.0) | (250.6, 373.5)
1260| (239.1, 351.0) | (239.1, 373.5)
1261| (227.5, 351.0) | (227.5, 373.5)
1262| (216.0, 351.0) | (216.0, 373.5)
1263| (204.5, 351.0) | (204.5, 373.5)
1264| (192.9, 351.0) | (192.9, 373.5)
1265| (181.4, 351.0) | (181.4, 373.5)
1266| (169.9, 351.0) | (169.9, 373.5)
1267| (158.4, 351.0) | (158.4, 373.5)
1268| (146.8, 351.0) | (146.8, 373.5)
1269| (135.3, 351.0) | (135.3, 373.5)
1270| (123.8, 351.0) | (123.8, 373.5)
1271| (112.2, 351.0) | (112.2, 373.5)
1272| (100.7, 351.0) | (100.7, 373.5)
1273| (89.2, 351.0) | (89.2, 373.5)
1274| (77.6, 351.0) | (77.6, 373.5)
1275| (66.1, 351.0) | (66.1, 373.5)
1276| (54.6, 351.0) | (54.6, 373.5)
1277| (43.1, 351.0) | (43.1, 373.5)
1278| (31.5, 351.0) | (31.5, 373.5)
1279| (20.0, 351.0) | (20.0, 373.5)
1280| (20.0, 362.1) | (20.0, 384.6)
1281| (31.5, 362.1) | (31.5, 384.6)
1282| (43.1, 362.1) | (43.1, 384.6)
1283| (54.6, 362.1) | (54.6, 384.6)
1284| (66.1, 362.1) | (66.1, 384.6)
1285| (77.7, 362.1) | (77.7, 384.6)
1286| (89.2, 362.1) | (89.2, 384.6)
1287| (100.7, 362.1) | (100.7, 384.6)
1288| (112.2, 362.1) | (112.2, 384.6)
1289| (123.8, 362.1) | (123.8, 384.6)
1290| (135.3, 362.1) | (135.3, 384.6)
1291| (146.8, 362.1) | (146.8, 384.6)
1292| (158.4, 362.1) | (158.4, 384.6)
1293| (169.9, 362.1) | (169.9, 384.6)
1294| (181.4, 362.1) | (181.4, 384.6)
1295| (192.9, 362.1) | (192.9, 384.6)
1296| (204.5, 362.1) | (204.5, 384.6)
1297| (216.0, 362.1) | (216.0, 384.6)
1298| (227.5, 362.1) | (227.5, 384.6)
1299| (239.1, 362.1) | (239.1, 384.6)
1300| (250.6, 362.1) | (250.6, 384.6)
1301| (262.1, 362.1) | (262.1, 384.6)
1302| (273.7, 362.1) | (273.7, 384.6)
1303| (285.2, 362.1) | (285.2, 384.6)
1304| (296.7, 362.1) | (296.7, 384.6)
1305| (308.2, 362.1) | (308.2, 384.6)
1306| (319.8, 362.1) | (319.8, 384.6)
1307| (331.3, 362.1) | (331.3, 384.6)
1308| (342.8, 362.1) | (342.8, 384.6)
1309| (354.4, 362.1) | (354.4, 384.6)
1310| (365.9, 362.1) | (365.9, 384.6)
1311| (377.4, 362.1) | (377.4, 384.6)
1312| (389.0, 362.1) | (389.0, 384.6)
1313| (400.5, 362.1) | (400.5, 384.6)
1314| (412.0, 362.1) | (412.0, 384.6)
1315| (423.5, 362.1) | (423.5, 384.6)
1316| (435.1, 362.1) | (435.1, 384.6)
1317| (446.6, 362.1) | (446.6, 384.6)
1318| (458.1, 362.1) | (458.1, 384.6)
1319| (469.7, 362.1) | (469.7, 384.6)
1320| (469.7, 373.1) | (469.7, 395.6)
1321| (458.1, 373.1) | (458.1, 395.6)
1322| (446.6, 373.1) | (446.6, 395.6)
1323| (435.1, 373.1) | (435.1, 395.6)
1324| (423.5, 373.1) | (423.5, 395.6)
1325| (412.0, 373.1) | (412.0, 395.6)
1326| (400.5, 373.1) | (400.5, 395.6)
1327| (389.0, 373.1) | (389.0, 395.6)
1328| (377.4, 373.1) | (377.4, 395.6)
1329| (365.9, 373.1) | (365.9, 395.6)
1330| (354.4, 373.1) | (354.4, 395.6)
1331| (342.8, 373.1) | (342.8, 395.6)
1332| (331.3, 373.1) | (331.3, 395.6)
1333| (319.8, 373.1) | (319.8, 395.6)
1334| (308.2, 373.1) | (308.2, 395.6)
1335| (296.7, 373.1) | (296.7, 395.6)
1336| (285.2, 373.1) | (285.2, 395.6)
1337| (273.7, 373.1) | (273.7, 395.6)
1338| (262.1, 373.1) | (262.1, 395.6)
1339| (250.6, 373.1) | (250.6, 395.6)
1340| (239.1, 373.1) | (239.1, 395.6)
1341| (227.5, 373.1) | (227.5, 395.6)
1342| (216.0, 373.1) | (216.0, 395.6)
1343| (204.5, 373.1) | (204.5, 395.6)
1344| (192.9, 373.1) | (192.9, 395.6)
1345| (181.4, 373.1) | (181.4, 395.6)
1346| (169.9, 373.1) | (169.9, 395.6)
1347| (158.4, 373.1) | (158.4, 395.6)
1348| (146.8, 373.1) | (146.8, 395.6)
1349| (135.3, 373.1) | (135.3, 395.6)
1350| (123.8, 373.1) | (123.8, 395.6)
1351| (112.2, 373.1) | (112.2, 395.6)
1352| (100.7, 373.1) | (100.7, 395.6)
1353| (89.2, 373.1) | (89.2, 395.6)
1354| (77.6, 373.1) | (77.6, 395.6)
1355| (66.1, 373.1) | (66.1, 395.6)
1356| (54.6, 373.1) | (54.6, 395.6)
1357| (43.1, 373.1) | (43.1, 395.6)
1358| (31.5, 373.1) | (31.5, 395.6)
1359| (20.0, 373.1) | (20.0, 395.6)
1360| (20.0, 384.2) | (20.0, 406.7)
1361| (31.5, 384.2) | (31.5, 406.7)
1362| (43.1, 384.2) | (43.1, 406.7)
1363| (54.6, 384.2) | (54.6, 406.7)
1364| (66.1, 384.2) | (66.1, 406.7)
1365| (77.7, 384.2) | (77.7, 406.7)
1366| (89.2, 384.2) | (89.2, 406.7)
1367| (100.7, 384.2) | (100.7, 406.7)
1368| (112.2, 384.2) | (112.2, 406.7)
1369| (123.8, 384.2) | (123.8, 406.7)
1370| (135.3, 384.2) | (135.3, 406.7)
1371| (146.8, 384.2) | (146.8, 406.7)
1372| (158.4, 384.2) | (158.4, 406.7)
1373| (169.9, 384.2) | (169.9, 406.7)
1374| (181.4, 384.2) | (181.4, 406.7)
1375| (192.9, 384.2) | (192.9, 406.7)
1376| (204.5, 384.2) | (204.5, 406.7)
1377| (216.0, 384.2) | (216.0, 406.7)
1378| (227.5, 384.2) | (227.5, 406.7)
1379| (239.1, 384.2) | (239.1, 406.7)
1380| (250.6, 384.2) | (250.6, 406.7)
1381| (262.1, 384.2) | (262.1, 406.7)
1382| (273.7, 384.2) | (273.7, 406.7)
1383| (285.2, 384.2) | (285.2, 406.7)
1384| (296.7, 384.2) | (296.7, 406.7)
1385| (308.2, 384.2) | (308.2, 406.7)
1386| (319.8, 384.2) | (319.8, 406.7)
1387| (331.3, 384.2) | (331.3, 406.7)
1388| (342.8, 384.2) | (342.8, 406.7)
1389| (354.4, 384.2) | (354.4, 406.7)
1390| (365.9, 384.2) | (365.9, 406.7)
1391| (377.4, 384.2) | (377.4, 406.7)
1392| (389.0, 384.2) | (389.0, 406.7)
1393| (400.5, 384.2) | (400.5, 406.7)
1394| (412.0, 384.2) | (412.0, 406.7)
1395| (423.5, 384.2) | (423.5, 406.7)
1396| (435.1, 384.2) | (435.1, 406.7)
1397| (446.6, 384.2) | (446.6, 406.7)
1398| (458.1, 384.2) | (458.1, 406.7)
1399| (469.7, 384.2) | (469.7, 406.7)
1400| (469.7, 395.3) | (469.7, 417.8)
1401| (458.1, 395.3) | (458.1, 417.8)
1402| (446.6, 395.3) | (446.6, 417.8)
1403| (435.1, 395.3) | (435.1, 417.8)
1404| (423.5, 395.3) | (423.5, 417.8)
1405| (412.0, 395.3) | (412.0, 417.8)
1406| (400.5, 395.3) | (400.5, 417.8)
1407| (389.0, 395.3) | (389.0, 417.8)
1408| (377.4, 395.3) | (377.4, 417.8)
1409| (365.9, 395.3) | (365.9, 417.8)
1410| (354.4, 395.3) | (354.4, 417.8)
1411| (342.8, 395.3) | (342.8, 417.8)
1412| (331.3, 395.3) | (331.3, 417.8)
1413| (319.8, 395.3) | (319.8, 417.8)
1414| (308.2, 395.3) | (308.2, 417.8)
1415| (296.7, 395.3) | (296.7, 417.8)
1416| (285.2, 395.3) | (285.2, 417.8)
1417| (273.7, 395.3) | (273.7, 417.8)
1418| (262.1, 395.3) | (262.1, 417.8)
1419| (250.6, 395.3) | (250.6, 417.8)
1420| (239.1, 395.3) | (239.1, 417.8)
1421| (227.5, 395.3) | (227.5, 417.8)
1422| (216.0, 395.3) | (216.0, 417.8)
1423| (204.5, 395.3) | (204.5, 417.8)
1424| (192.9, 395.3) | (192.9, 417.8)
1425| (181.4, 395.3) | (181.4, 417.8)
1426| (169.9, 395.3) | (169.9, 417.8)
1427| (158.4, 395.3) | (158.4, 417.8)
1428| (146.8, 395.3) | (146.8, 417.8)
1429| (135.3, 395.3) | (135.3, 417.8)
1430| (123.8, 395.3) | (123.8, 417.8)
1431| (112.2, 395.3) | (112.2, 417.8)
1432| (100.7, 395.3) | (100.7, 417.8)
1433| (89.2, 395.3) | (89.2, 417.8)
1434| (77.6, 395.3) | (77.6, 417.8)
1435| (66.1, 395.3) | (66.1, 417.8)
1436| (54.6, 395.3) | (54.6, 417.8)
1437| (43.1, 395.3) | (43.1, 417.8)
1438| (31.5, 395.3) | (31.5, 417.8)
1439| (20.0, 395.3) | (20.0, 417.8)
1440| (20.0, 406.4) | (20.0, 428.9)
1441| (31.5, 406.4) | (31.5, 428.9)
1442| (43.1, 406.4) | (43.1, 428.9)
1443| (54.6, 406.4) | (54.6, 428.9)
1444| (66.1, 406.4) | (66.1, 428.9)
1445| (77.7, 406.4) | (77.7, 428.9)
1446| (89.2, 406.4) | (89.2, 428.9)
1447| (100.7, 406.4) | (100.7, 428.9)
1448| (112.2, 406.4) | (112.2, 428.9)
1449| (123.8, 406.4) | (123.8, 428.9)
1450| (135.3, 406.4) | (135.3, 428.9)
1451| (146.8, 406.4) | (146.8, 428.9)
1452| (158.4, 406.4) | (158.4, 428.9)
1453| (169.9, 406.4) | (169.9, 428.9)
1454| (181.4, 406.4) | (181.4, 428.9)
1455| (192.9, 406.4) | (192.9, 428.9)
1456| (204.5, 406.4) | (204.5, 428.9)
1457| (216.0, 406.4) | (216.0, 428.9)
1458| (227.5, 406.4) | (227.5, 428.9)
1459| (239.1, 406.4) | (239.1, 428.9)
1460| (250.6, 406.4) | (250.6, 428.9)
1461| (262.1, 406.4) | (262.1, 428.9)
1462| (273.7, 406.4) | (273.7, 428.9)
1463| (285.2, 406.4) | (285.2, 428.9)
1464| (296.7, 406.4) | (296.7, 428.9)
1465| (308.2, 406.4) | (308.2, 428.9)
1466| (319.8, 406.4) | (319.8, 428.9)
1467| (331.3, 406.4) | (331.3, 428.9)
1468| (342.8, 406.4) | (342.8, 428.9)
1469| (354.4, 406.4) | (354.4, 428.9)
1470| (365.9, 406.4) | (365.9, 428.9)
1471| (377.4, 406.4) | (377.4, 428.9)
1472| (389.0, 406.4) | (389.0, 428.9)
1473| (400.5, 406.4) | (400.5, 428.9)
1474| (412.0, 406.4) | (412.0, 428.9)
1475| (423.5, 406.4) | (423.5, 428.9)
1476| (435.1, 406.4) | (435.1, 428.9)
1477| (446.6, 406.4) | (446.6, 428.9)
1478| (458.1, 406.4) | (458.1, 428.9)
1479| (469.7, 406.4) | (469.7, 428.9)
1480| (469.7, 417.5) | (469.7, 440.0)
1481| (458.1, 417.5) | (458.1, 440.0)
1482| (446.6, 417.5) | (446.6, 440.0)
1483| (435.1, 417.5) | (435.1, 440.0)
1484| (423.5, 417.5) | (423.5, 440.0)
1485| (412.0, 417.5) | (412.0, 440.0)
1486| (400.5, 417.5) | (400.5, 440.0)
1487| (389.0, 417.5) | (389.0, 440.0)
1488| (377.4, 417.5) | (377.4, 440.0)
1489| (365.9, 417.5) | (365.9, 440.0)
1490| (354.4, 417.5) | (354.4, 440.0)
1491| (342.8, 417.5) | (342.8, 440.0)
1492| (331.3, 417.5) | (331.3, 440.0)
1493| (319.8, 417.5) | (319.8, 440.0)
1494| (308.2, 417.5) | (308.2, 440.0)
1495| (296.7, 417.5) | (296.7, 440.0)
1496| (285.2, 417.5) | (285.2, 440.0)
1497| (273.7, 417.5) | (273.7, 440.0)
1498| (262.1, 417.5) | (262.1, 440.0)
1499| (250.6, 417.5) | (250.6, 440.0)
1500| (239.1, 417.5) | (239.1, 440.0)
1501| (227.5, 417.5) | (227.5, 440.0)
1502| (216.0, 417.5) | (216.0, 440.0)
1503| (204.5, 417.5) | (204.5, 440.0)
1504| (192.9, 417.5) | (192.9, 440.0)
1505| (181.4, 417.5) | (181.4, 440.0)
1506| (169.9, 417.5) | (169.9, 440.0)
1507| (158.4, 417.5) | (158.4, 440.0)
1508| (146.8, 417.5) | (146.8, 440.0)
1509| (135.3, 417.5) | (135.3, 440.0)
1510| (123.8, 417.5) | (123.8, 440.0)
1511| (112.2, 417.5) | (112.2, 440.0)
1512| (100.7, 417.5) | (100.7, 440.0)
1513| (89.2, 417.5) | (89.2, 440.0)
1514| (77.6, 417.5) | (77.6, 440.0)
1515| (66.1, 417.5) | (66.1, 440.0)
1516| (54.6, 417.5) | (54.6, 440.0)
1517| (43.1, 417.5) | (43.1, 440.0)
1518| (31.5, 417.5) | (31.5, 440.0)
1519| (20.0, 417.5) | (20.0, 440.0)
1520| (20.0, 428.5) | (20.0, 451.0)
1521| (31.5, 428.5) | (31.5, 451.0)
1522| (43.1, 428.5) | (43.1, 451.0)
1523| (54.6, 428.5) | (54.6, 451.0)
1524| (66.1, 428.5) | (66.1, 451.0)
1525| (77.7, 428.5) | (77.7, 451.0)
1526| (89.2, 428.5) | (89.2, 451.0)
1527| (100.7, 428.5) | (100.7, 451.0)
1528| (112.2, 428.5) | (112.2, 451.0)
1529| (123.8, 428.5) | (123.8, 451.0)
1530| (135.3, 428.5) | (135.3, 451.0)
1531| (146.8, 428.5) | (146.8, 451.0)
1532| (158.4, 428.5) | (158.4, 451.0)
1533| (169.9, 428.5) | (169.9, 451.0)
1534| (181.4, 428.5) | (181.4, 451.0)
1535| (192.9, 428.5) | (192.9, 451.0)
1536| (204.5, 428.5) | (204.5, 451.0)
1537| (216.0, 428.5) | (216.0, 451.0)
1538| (227.5, 428.5) | (227.5, 451.0)
1539| (239.1, 428.5) | (239.1, 451.0)
1540| (250.6, 428.5) | (250.6, 451.0)
1541| (262.1, 428.5) | (262.1, 451.0)
1542| (273.7, 428.5) | (273.7, 451.0)
1543| (285.2, 428.5) | (285.2, 451.0)
1544| (296.7, 428.5) | (296.7, 451.0)
1545| (308.2, 428.5) | (308.2, 451.0)
1546| (319.8, 428.5) | (319.8, 451.0)
1547| (331.3, 428.5) | (331.3, 451.0)
1548| (342.8, 428.5) | (342.8, 451.0)
1549| (354.4, 428.5) | (354.4, 451.0)
1550| (365.9, 428.5) | (365.9, 451.0)
1551| (377.4, 428.5) | (377.4, 451.0)
1552| (389.0, 428.5) | (389.0, 451.0)
1553| (400.5, 428.5) | (400.5, 451.0)
1554| (412.0, 428.5) | (412.0, 451.0)
1555| (423.5, 428.5) | (423.5, 451.0)
1556| (435.1, 428.5) | (435.1, 451.0)
1557| (446.6, 428.5) | (446.6, 451.0)
1558| (458.1, 428.5) | (458.1, 451.0)
1559| (469.7, 428.5) | (469.7, 451.0)
1560| (469.7, 439.6) | (469.7, 462.1)
1561| (458.1, 439.6) | (458.1, 462.1)
1562| (446.6, 439.6) | (446.6, 462.1)
1563| (435.1, 439.6) | (435.1, 462.1)
1564| (423.5, 439.6) | (423.5, 462.1)
1565| (412.0, 439.6) | (412.0, 462.1)
1566| (400.5, 439.6) | (400.5, 462.1)
1567| (389.0, 439.6) | (389.0, 462.1)
1568| (377.4, 439.6) | (377.4, 462.1)
1569| (365.9, 439.6) | (365.9, 462.1)
1570| (354.4, 439.6) | (354.4, 462.1)
1571| (342.8, 439.6) | (342.8, 462.1)
1572| (331.3, 439.6) | (331.3, 462.1)
1573| (319.8, 439.6) | (319.8, 462.1)
1574| (308.2, 439.6) | (308.2, 462.1)
1575| (296.7, 439.6) | (296.7, 462.1)
1576| (285.2, 439.6) | (285.2, 462.1)
1577| (273.7, 439.6) | (273.7, 462.1)
1578| (262.1, 439.6) | (262.1, 462.1)
1579| (250.6, 439.6) | (250.6, 462.1)
1580| (239.1, 439.6) | (239.1, 462.1)
1581| (227.5, 439.6) | (227.5, 462.1)
1582| (216.0, 439.6) | (216.0, 462.1)
1583| (204.5, 439.6) | (204.5, 462.1)
1584| (192.9, 439.6) | (192.9, 462.1)
1585| (181.4, 439.6) | (181.4, 462.1)
1586| (169.9, 439.6) | (169.9, 462.1)
1587| (158.4, 439.6) | (158.4, 462.1)
1588| (146.8, 439.6) | (146.8, 462.1)
1589| (135.3, 439.6) | (135.3, 462.1)
1590| (123.8, 439.6) | (123.8, 462.1)
1591| (112.2, 439.6) | (112.2, 462.1)
1592| (100.7, 439.6) | (100.7, 462.1)
1593| (89.2, 439.6) | (89.2, 462.1)
1594| (77.6, 439.6) | (77.6, 462.1)
1595| (66.1, 439.6) | (66.1, 462.1)
1596| (54.6, 439.6) | (54.6, 462.1)
1597| (43.1, 439.6) | (43.1, 462.1)
1598| (31.5, 439.6) | (31.5, 462.1)
1599| (20.0, 439.6) | (20.0, 462.1)
beacon: loaded fnorm=5119941.73 temp=21.31 amfg=1.094 from nvm
beacon: built tempco model version 1 {'amfg': 1.0942302943460085, 'tcc': -8.24122690331772e-06, 'tcfl': -0.0006189559222567538, 'tctl': 0.0018844460836795654, 'fmin': 5119941.733777523, 'fmin_temp': 21.306076049804688}
Enabling Beacon accelerometer
Selected Beacon accelerometer scale 16g
Sending MCU 'beacon' printer configuration...
Configured MCU 'beacon' (0 moves)
Printer is not ready
The klippy host software is attempting to connect. Please
retry in a few moments.
Script running error
Traceback (most recent call last):
File "/home/pi/klipper/klippy/extras/gcode_button.py", line 41, in button_callback
self.gcode.run_script(template.render())
File "/home/pi/klipper/klippy/gcode.py", line 230, in run_script
self._process_commands(script.split('\n'), need_ack=False)
File "/home/pi/klipper/klippy/gcode.py", line 212, in _process_commands
handler(gcmd)
File "/home/pi/klipper/klippy/gcode.py", line 282, in cmd_default
raise gcmd.error(self.printer.get_state_message()[0])
gcode.CommandError:
Printer is not ready
The klippy host software is attempting to connect. Please
retry in a few moments.
Printer is not ready
The klippy host software is attempting to connect. Please
retry in a few moments.
Script running error
Traceback (most recent call last):
File "/home/pi/klipper/klippy/extras/gcode_button.py", line 41, in button_callback
self.gcode.run_script(template.render())
File "/home/pi/klipper/klippy/gcode.py", line 230, in run_script
self._process_commands(script.split('\n'), need_ack=False)
File "/home/pi/klipper/klippy/gcode.py", line 212, in _process_commands
handler(gcmd)
File "/home/pi/klipper/klippy/gcode.py", line 282, in cmd_default
raise gcmd.error(self.printer.get_state_message()[0])
gcode.CommandError:
Printer is not ready
The klippy host software is attempting to connect. Please
retry in a few moments.
Starting heater checks for extruder
Starting heater checks for extruder1
Stats 79.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=4044 bytes_read=7933 bytes_retransmit=9 bytes_invalid=0 send_seq=330 receive_seq=330 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=179997668 rpi: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=913 bytes_read=5006 bytes_retransmit=0 bytes_invalid=0 send_seq=122 receive_seq=122 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000127 adj=49997847 toolboard_t0: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1517 bytes_read=5079 bytes_retransmit=9 bytes_invalid=0 send_seq=162 receive_seq=162 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999274 adj=64003280 toolboard_t1: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1506 bytes_read=5058 bytes_retransmit=9 bytes_invalid=0 send_seq=160 receive_seq=160 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63998036 adj=64000720 Octopus_V1.1_F446: temp=0.0 EBB42_v1.2_T0: temp=30.7 EBB42_v1.2_T1: temp=31.1 raspberry_pi: temp=43.3 heater_bed: target=0 temp=0.0 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=380 bytes_read=2154 bytes_retransmit=0 bytes_invalid=0 send_seq=62 receive_seq=62 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31998885 adj=31996207 coil_temp=29.1 refs=0 mcu_temp=29.24 supply_voltage=3.026 sysload=5.06 cputime=7.912 memavail=446384 print_time=88.428 buffer_time=0.261 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
toolhead: max_velocity: 36000.000000
max_accel: 8000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
Extruder extruder already active
Extruder 'extruder' now syncing with 'extruder'
Extruder 'extruder1' now syncing with 'extruder1'
shaper_type_x:mzv shaper_freq_x:0.000 damping_ratio_x:0.100000
shaper_type_y:mzv shaper_freq_y:0.000 damping_ratio_y:0.100000
toolhead: max_velocity: 800.000000
max_accel: 10000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
webhooks: registering remote method 'shutdown_machine' for connection id: 4119939008
webhooks: registering remote method 'reboot_machine' for connection id: 4119939008
webhooks: registering remote method 'pause_job_queue' for connection id: 4119939008
webhooks: registering remote method 'start_job_queue' for connection id: 4119939008
Stats 80.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=4050 bytes_read=8065 bytes_retransmit=9 bytes_invalid=0 send_seq=331 receive_seq=331 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=179998326 rpi: mcu_awake=0.004 mcu_task_avg=0.000023 mcu_task_stddev=0.000016 bytes_write=919 bytes_read=5036 bytes_retransmit=0 bytes_invalid=0 send_seq=123 receive_seq=123 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999855 adj=50003029 toolboard_t0: mcu_awake=0.013 mcu_task_avg=0.000021 mcu_task_stddev=0.000026 bytes_write=1523 bytes_read=5194 bytes_retransmit=9 bytes_invalid=0 send_seq=163 receive_seq=163 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999651 adj=63997871 toolboard_t1: mcu_awake=0.014 mcu_task_avg=0.000021 mcu_task_stddev=0.000025 bytes_write=1512 bytes_read=5173 bytes_retransmit=9 bytes_invalid=0 send_seq=161 receive_seq=161 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999376 adj=63997703 Octopus_V1.1_F446: temp=32.2 EBB42_v1.2_T0: temp=30.7 EBB42_v1.2_T1: temp=31.2 raspberry_pi: temp=43.3 heater_bed: target=0 temp=29.0 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=386 bytes_read=2510 bytes_retransmit=0 bytes_invalid=0 send_seq=63 receive_seq=63 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999349 adj=32000713 coil_temp=29.1 refs=0 mcu_temp=29.24 supply_voltage=3.026 sysload=4.90 cputime=8.063 memavail=441052 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 114.249: freq=179998687 diff=-4294893629 stddev=142086.748
Stats 114.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4062 bytes_read=11423 bytes_retransmit=9 bytes_invalid=0 send_seq=333 receive_seq=333 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=71415251 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=931 bytes_read=5146 bytes_retransmit=0 bytes_invalid=0 send_seq=125 receive_seq=125 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999616 adj=50001627 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1535 bytes_read=8446 bytes_retransmit=9 bytes_invalid=0 send_seq=165 receive_seq=165 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999926 adj=63998501 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1524 bytes_read=8425 bytes_retransmit=9 bytes_invalid=0 send_seq=163 receive_seq=163 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999878 adj=63999794 Octopus_V1.1_F446: temp=33.2 EBB42_v1.2_T0: temp=31.2 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=398 bytes_read=13984 bytes_retransmit=0 bytes_invalid=0 send_seq=65 receive_seq=65 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999781 adj=32000946 coil_temp=29.2 refs=0 mcu_temp=29.88 supply_voltage=3.026 sysload=4.15 cputime=8.535 memavail=421036 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 115.230: freq=71415251 diff=-42435934 stddev=180000.000
Stats 115.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4068 bytes_read=11526 bytes_retransmit=9 bytes_invalid=0 send_seq=334 receive_seq=334 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=70859607 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=937 bytes_read=5175 bytes_retransmit=0 bytes_invalid=0 send_seq=126 receive_seq=126 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999517 adj=413905829 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1541 bytes_read=8560 bytes_retransmit=9 bytes_invalid=0 send_seq=166 receive_seq=166 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999900 adj=529810653 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1530 bytes_read=8539 bytes_retransmit=9 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999860 adj=529808391 Octopus_V1.1_F446: temp=33.4 EBB42_v1.2_T0: temp=31.0 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=404 bytes_read=14322 bytes_retransmit=0 bytes_invalid=0 send_seq=66 receive_seq=66 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999760 adj=264901143 coil_temp=29.2 refs=0 mcu_temp=29.90 supply_voltage=3.026 sysload=3.82 cputime=8.614 memavail=412944 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.5 pwm=0.000
Resetting prediction variance 116.214: freq=70859607 diff=86716854 stddev=180000.000
Stats 116.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4074 bytes_read=11629 bytes_retransmit=9 bytes_invalid=0 send_seq=335 receive_seq=335 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=71634286 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=943 bytes_read=5191 bytes_retransmit=0 bytes_invalid=0 send_seq=127 receive_seq=127 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999479 adj=398836695 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1547 bytes_read=8688 bytes_retransmit=9 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999891 adj=510522850 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1536 bytes_read=8667 bytes_retransmit=9 bytes_invalid=0 send_seq=165 receive_seq=165 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999854 adj=510520719 Octopus_V1.1_F446: temp=33.2 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=410 bytes_read=14678 bytes_retransmit=0 bytes_invalid=0 send_seq=67 receive_seq=67 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999758 adj=255257333 coil_temp=29.2 refs=0 mcu_temp=29.91 supply_voltage=3.026 sysload=3.82 cputime=8.640 memavail=412948 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 117.199: freq=71634286 diff=162352465 stddev=180000.000
Stats 117.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4080 bytes_read=11775 bytes_retransmit=9 bytes_invalid=0 send_seq=336 receive_seq=336 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=72744125 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=949 bytes_read=5207 bytes_retransmit=0 bytes_invalid=0 send_seq=128 receive_seq=128 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999453 adj=353497043 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1553 bytes_read=8788 bytes_retransmit=9 bytes_invalid=0 send_seq=168 receive_seq=168 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999907 adj=452487042 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1542 bytes_read=8767 bytes_retransmit=9 bytes_invalid=0 send_seq=166 receive_seq=166 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999860 adj=452485218 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.2 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=416 bytes_read=15018 bytes_retransmit=0 bytes_invalid=0 send_seq=68 receive_seq=68 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999758 adj=226239992 coil_temp=29.2 refs=0 mcu_temp=29.92 supply_voltage=3.026 sysload=3.82 cputime=8.667 memavail=412984 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 118.183: freq=72744125 diff=222492942 stddev=180000.000
Stats 118.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4086 bytes_read=11878 bytes_retransmit=9 bytes_invalid=0 send_seq=337 receive_seq=337 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=73984071 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=955 bytes_read=5223 bytes_retransmit=0 bytes_invalid=0 send_seq=129 receive_seq=129 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999437 adj=306577128 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1559 bytes_read=8902 bytes_retransmit=9 bytes_invalid=0 send_seq=169 receive_seq=169 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999904 adj=392428443 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1548 bytes_read=8895 bytes_retransmit=9 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999858 adj=392426792 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=41.9 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=422 bytes_read=15374 bytes_retransmit=0 bytes_invalid=0 send_seq=69 receive_seq=69 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999764 adj=196211131 coil_temp=29.2 refs=0 mcu_temp=29.93 supply_voltage=3.026 sysload=3.82 cputime=8.693 memavail=412984 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 119.167: freq=73984071 diff=275027477 stddev=180000.000
Stats 119.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4092 bytes_read=11981 bytes_retransmit=9 bytes_invalid=0 send_seq=338 receive_seq=338 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=75284887 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=961 bytes_read=5239 bytes_retransmit=0 bytes_invalid=0 send_seq=130 receive_seq=130 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999432 adj=263924700 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1565 bytes_read=9016 bytes_retransmit=9 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999899 adj=337831934 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1554 bytes_read=8995 bytes_retransmit=9 bytes_invalid=0 send_seq=168 receive_seq=168 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999856 adj=337830562 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.2 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=428 bytes_read=15730 bytes_retransmit=0 bytes_invalid=0 send_seq=70 receive_seq=70 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999761 adj=168913457 coil_temp=29.2 refs=0 mcu_temp=29.94 supply_voltage=3.026 sysload=3.82 cputime=8.719 memavail=412984 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 120.151: freq=75284887 diff=322672366 stddev=180000.000
Stats 120.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4098 bytes_read=12113 bytes_retransmit=9 bytes_invalid=0 send_seq=339 receive_seq=339 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=76616699 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=967 bytes_read=5268 bytes_retransmit=0 bytes_invalid=0 send_seq=131 receive_seq=131 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999441 adj=226841608 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1571 bytes_read=9116 bytes_retransmit=9 bytes_invalid=0 send_seq=171 receive_seq=171 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999902 adj=290364403 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000009 bytes_write=1560 bytes_read=9095 bytes_retransmit=9 bytes_invalid=0 send_seq=169 receive_seq=169 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999862 adj=290363134 Octopus_V1.1_F446: temp=33.4 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.4 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.5 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=434 bytes_read=16086 bytes_retransmit=0 bytes_invalid=0 send_seq=71 receive_seq=71 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999788 adj=145180028 coil_temp=29.2 refs=0 mcu_temp=29.96 supply_voltage=3.026 sysload=3.51 cputime=8.774 memavail=412984 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 121.136: freq=76616699 diff=366601129 stddev=180000.000
Stats 121.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4104 bytes_read=12216 bytes_retransmit=9 bytes_invalid=0 send_seq=340 receive_seq=340 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=77964355 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=973 bytes_read=5284 bytes_retransmit=0 bytes_invalid=0 send_seq=132 receive_seq=132 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999450 adj=195285293 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1577 bytes_read=9258 bytes_retransmit=9 bytes_invalid=0 send_seq=172 receive_seq=172 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999913 adj=249971027 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1566 bytes_read=9237 bytes_retransmit=9 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999865 adj=249970019 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.2 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=440 bytes_read=16442 bytes_retransmit=0 bytes_invalid=0 send_seq=72 receive_seq=72 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999789 adj=124984021 coil_temp=29.2 refs=0 mcu_temp=29.99 supply_voltage=3.026 sysload=3.51 cputime=8.836 memavail=413248 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 122.120: freq=77964355 diff=407518903 stddev=180000.000
Stats 122.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4110 bytes_read=12333 bytes_retransmit=9 bytes_invalid=0 send_seq=341 receive_seq=341 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=79319609 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=979 bytes_read=5300 bytes_retransmit=0 bytes_invalid=0 send_seq=133 receive_seq=133 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999453 adj=168783861 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1583 bytes_read=9358 bytes_retransmit=9 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999918 adj=216048205 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1572 bytes_read=9337 bytes_retransmit=9 bytes_invalid=0 send_seq=171 receive_seq=171 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999865 adj=216047282 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.7 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=446 bytes_read=16798 bytes_retransmit=0 bytes_invalid=0 send_seq=73 receive_seq=73 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999783 adj=108022808 coil_temp=29.2 refs=0 mcu_temp=30.01 supply_voltage=3.026 sysload=3.51 cputime=8.917 memavail=413248 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 123.104: freq=79319609 diff=445742914 stddev=180000.000
Stats 123.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4116 bytes_read=12465 bytes_retransmit=9 bytes_invalid=0 send_seq=342 receive_seq=342 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=80677280 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=985 bytes_read=5316 bytes_retransmit=0 bytes_invalid=0 send_seq=134 receive_seq=134 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999451 adj=146723355 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1589 bytes_read=9456 bytes_retransmit=9 bytes_invalid=0 send_seq=174 receive_seq=174 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999923 adj=187809971 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1578 bytes_read=9435 bytes_retransmit=9 bytes_invalid=0 send_seq=172 receive_seq=172 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999868 adj=187809144 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.3 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=452 bytes_read=17154 bytes_retransmit=0 bytes_invalid=0 send_seq=74 receive_seq=74 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999778 adj=93903787 coil_temp=29.2 refs=0 mcu_temp=30.02 supply_voltage=3.026 sysload=3.51 cputime=8.943 memavail=413248 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.6 pwm=0.000
Resetting prediction variance 124.088: freq=80677280 diff=481571783 stddev=180000.000
Stats 124.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4122 bytes_read=12568 bytes_retransmit=9 bytes_invalid=0 send_seq=343 receive_seq=343 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=82034166 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=991 bytes_read=5332 bytes_retransmit=0 bytes_invalid=0 send_seq=135 receive_seq=135 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999460 adj=128487771 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1595 bytes_read=9575 bytes_retransmit=9 bytes_invalid=0 send_seq=175 receive_seq=175 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999921 adj=164467854 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1584 bytes_read=9554 bytes_retransmit=9 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999865 adj=164467154 Octopus_V1.1_F446: temp=33.5 EBB42_v1.2_T0: temp=31.2 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=458 bytes_read=17510 bytes_retransmit=0 bytes_invalid=0 send_seq=75 receive_seq=75 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999775 adj=82232862 coil_temp=29.2 refs=0 mcu_temp=30.04 supply_voltage=3.026 sysload=3.51 cputime=8.970 memavail=413768 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 125.073: freq=82034166 diff=515178643 stddev=180000.000
Stats 125.2: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4128 bytes_read=12671 bytes_retransmit=9 bytes_invalid=0 send_seq=344 receive_seq=344 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=83388089 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000022 bytes_write=997 bytes_read=5361 bytes_retransmit=0 bytes_invalid=0 send_seq=136 receive_seq=136 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999462 adj=113494728 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1601 bytes_read=9668 bytes_retransmit=9 bytes_invalid=0 send_seq=176 receive_seq=176 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999919 adj=145275996 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1590 bytes_read=9647 bytes_retransmit=9 bytes_invalid=0 send_seq=174 receive_seq=174 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999865 adj=145275410 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=464 bytes_read=17856 bytes_retransmit=0 bytes_invalid=0 send_seq=76 receive_seq=76 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999772 adj=72637079 coil_temp=29.2 refs=0 mcu_temp=30.05 supply_voltage=3.026 sysload=3.23 cputime=8.996 memavail=413768 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.5 pwm=0.000
Resetting prediction variance 126.057: freq=83388089 diff=546671659 stddev=180000.000
Stats 126.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4134 bytes_read=12803 bytes_retransmit=9 bytes_invalid=0 send_seq=345 receive_seq=345 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=84737418 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000022 bytes_write=1003 bytes_read=5377 bytes_retransmit=0 bytes_invalid=0 send_seq=137 receive_seq=137 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999477 adj=101223085 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1607 bytes_read=9775 bytes_retransmit=9 bytes_invalid=0 send_seq=177 receive_seq=177 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999916 adj=129567808 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1596 bytes_read=9754 bytes_retransmit=9 bytes_invalid=0 send_seq=175 receive_seq=175 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999874 adj=129567352 Octopus_V1.1_F446: temp=33.4 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=470 bytes_read=18201 bytes_retransmit=0 bytes_invalid=0 send_seq=77 receive_seq=77 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999770 adj=64783103 coil_temp=29.2 refs=0 mcu_temp=30.07 supply_voltage=3.026 sysload=3.23 cputime=9.026 memavail=411060 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 127.042: freq=84737418 diff=576305703 stddev=180000.000
Stats 127.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4140 bytes_read=12920 bytes_retransmit=9 bytes_invalid=0 send_seq=346 receive_seq=346 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=86081327 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000022 bytes_write=1009 bytes_read=5393 bytes_retransmit=0 bytes_invalid=0 send_seq=138 receive_seq=138 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999503 adj=91217990 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1613 bytes_read=9896 bytes_retransmit=9 bytes_invalid=0 send_seq=178 receive_seq=178 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999917 adj=116760636 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1602 bytes_read=9875 bytes_retransmit=9 bytes_invalid=0 send_seq=176 receive_seq=176 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999878 adj=116760425 Octopus_V1.1_F446: temp=33.3 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.8 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=476 bytes_read=18544 bytes_retransmit=0 bytes_invalid=0 send_seq=78 receive_seq=78 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999770 adj=58379641 coil_temp=29.2 refs=0 mcu_temp=30.09 supply_voltage=3.026 sysload=3.23 cputime=9.079 memavail=419468 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 128.026: freq=86081327 diff=603979908 stddev=180000.000
Stats 128.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4146 bytes_read=13023 bytes_retransmit=9 bytes_invalid=0 send_seq=347 receive_seq=347 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=87418725 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000022 bytes_write=1015 bytes_read=5409 bytes_retransmit=0 bytes_invalid=0 send_seq=139 receive_seq=139 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999510 adj=83085378 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1619 bytes_read=9996 bytes_retransmit=9 bytes_invalid=0 send_seq=179 receive_seq=179 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999918 adj=106350245 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1608 bytes_read=9975 bytes_retransmit=9 bytes_invalid=0 send_seq=177 receive_seq=177 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999879 adj=106350108 Octopus_V1.1_F446: temp=33.5 EBB42_v1.2_T0: temp=31.2 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=482 bytes_read=18889 bytes_retransmit=0 bytes_invalid=0 send_seq=79 receive_seq=79 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999772 adj=53174539 coil_temp=29.2 refs=0 mcu_temp=30.11 supply_voltage=3.026 sysload=3.23 cputime=9.140 memavail=419468 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 129.010: freq=87418725 diff=629881786 stddev=180000.000
Stats 129.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4152 bytes_read=13155 bytes_retransmit=9 bytes_invalid=0 send_seq=348 receive_seq=348 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=88748989 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000022 bytes_write=1021 bytes_read=5425 bytes_retransmit=0 bytes_invalid=0 send_seq=140 receive_seq=140 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999517 adj=76491200 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1625 bytes_read=10096 bytes_retransmit=9 bytes_invalid=0 send_seq=180 receive_seq=180 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999919 adj=97909499 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1614 bytes_read=10075 bytes_retransmit=9 bytes_invalid=0 send_seq=178 receive_seq=178 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999880 adj=97909386 Octopus_V1.1_F446: temp=33.5 EBB42_v1.2_T0: temp=31.3 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=488 bytes_read=19234 bytes_retransmit=0 bytes_invalid=0 send_seq=80 receive_seq=80 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999771 adj=48954261 coil_temp=29.3 refs=0 mcu_temp=30.12 supply_voltage=3.026 sysload=3.23 cputime=9.201 memavail=419468 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 129.994: freq=88748989 diff=654075946 stddev=180000.000
Stats 130.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4158 bytes_read=13258 bytes_retransmit=9 bytes_invalid=0 send_seq=349 receive_seq=349 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=90071600 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1027 bytes_read=5454 bytes_retransmit=0 bytes_invalid=0 send_seq=141 receive_seq=141 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999535 adj=71156634 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1631 bytes_read=10224 bytes_retransmit=9 bytes_invalid=0 send_seq=181 receive_seq=181 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999921 adj=91081100 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1620 bytes_read=10203 bytes_retransmit=9 bytes_invalid=0 send_seq=179 receive_seq=179 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999881 adj=91081000 Octopus_V1.1_F446: temp=33.5 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=41.9 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=494 bytes_read=19579 bytes_retransmit=0 bytes_invalid=0 send_seq=81 receive_seq=81 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999773 adj=45540114 coil_temp=29.3 refs=0 mcu_temp=30.13 supply_voltage=3.026 sysload=3.05 cputime=9.262 memavail=419468 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.5 pwm=0.000
Resetting prediction variance 130.979: freq=90071600 diff=676652682 stddev=180000.000
Stats 131.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4164 bytes_read=13361 bytes_retransmit=9 bytes_invalid=0 send_seq=350 receive_seq=350 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=91386177 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1033 bytes_read=5470 bytes_retransmit=0 bytes_invalid=0 send_seq=142 receive_seq=142 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999542 adj=66849488 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1637 bytes_read=10338 bytes_retransmit=9 bytes_invalid=0 send_seq=182 receive_seq=182 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999922 adj=85567623 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1626 bytes_read=10317 bytes_retransmit=9 bytes_invalid=0 send_seq=180 receive_seq=180 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999882 adj=85567531 Octopus_V1.1_F446: temp=33.5 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=500 bytes_read=19924 bytes_retransmit=0 bytes_invalid=0 send_seq=82 receive_seq=82 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999773 adj=42783441 coil_temp=29.3 refs=0 mcu_temp=30.13 supply_voltage=3.026 sysload=3.05 cputime=9.322 memavail=419220 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 131.963: freq=91386177 diff=697639134 stddev=180000.000
Stats 132.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4170 bytes_read=13507 bytes_retransmit=9 bytes_invalid=0 send_seq=351 receive_seq=351 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=92692321 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1039 bytes_read=5486 bytes_retransmit=0 bytes_invalid=0 send_seq=143 receive_seq=143 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999548 adj=63368712 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1643 bytes_read=10438 bytes_retransmit=9 bytes_invalid=0 send_seq=183 receive_seq=183 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999925 adj=81112174 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1632 bytes_read=10417 bytes_retransmit=9 bytes_invalid=0 send_seq=181 receive_seq=181 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999884 adj=81112094 Octopus_V1.1_F446: temp=33.6 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=506 bytes_read=20269 bytes_retransmit=0 bytes_invalid=0 send_seq=83 receive_seq=83 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999774 adj=40555752 coil_temp=29.3 refs=0 mcu_temp=30.14 supply_voltage=3.026 sysload=3.05 cputime=9.382 memavail=419220 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 132.948: freq=92692321 diff=717209945 stddev=180000.000
Stats 133.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4176 bytes_read=13610 bytes_retransmit=9 bytes_invalid=0 send_seq=352 receive_seq=352 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=93989938 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1045 bytes_read=5502 bytes_retransmit=0 bytes_invalid=0 send_seq=144 receive_seq=144 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999552 adj=60558400 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1649 bytes_read=10566 bytes_retransmit=9 bytes_invalid=0 send_seq=184 receive_seq=184 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999926 adj=77514971 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1638 bytes_read=10545 bytes_retransmit=9 bytes_invalid=0 send_seq=182 receive_seq=182 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999884 adj=77514873 Octopus_V1.1_F446: temp=33.4 EBB42_v1.2_T0: temp=31.5 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=512 bytes_read=20621 bytes_retransmit=0 bytes_invalid=0 send_seq=84 receive_seq=84 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999774 adj=38757170 coil_temp=29.3 refs=0 mcu_temp=30.15 supply_voltage=3.026 sysload=3.05 cputime=9.441 memavail=419220 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 133.933: freq=93989938 diff=735296792 stddev=180000.000
Stats 134.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4182 bytes_read=13711 bytes_retransmit=9 bytes_invalid=0 send_seq=353 receive_seq=353 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=95278683 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1051 bytes_read=5518 bytes_retransmit=0 bytes_invalid=0 send_seq=145 receive_seq=145 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999555 adj=58287820 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1655 bytes_read=10666 bytes_retransmit=9 bytes_invalid=0 send_seq=185 receive_seq=185 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=74608635 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1644 bytes_read=10645 bytes_retransmit=9 bytes_invalid=0 send_seq=183 receive_seq=183 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999883 adj=74608547 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=32.2 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=518 bytes_read=20977 bytes_retransmit=0 bytes_invalid=0 send_seq=85 receive_seq=85 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999774 adj=37304022 coil_temp=29.3 refs=0 mcu_temp=30.16 supply_voltage=3.026 sysload=3.05 cputime=9.500 memavail=419220 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.0 pwm=0.000 extruder1: target=0 temp=30.5 pwm=0.000
Resetting prediction variance 134.917: freq=95278683 diff=751955866 stddev=180000.000
Stats 135.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4188 bytes_read=13834 bytes_retransmit=9 bytes_invalid=0 send_seq=354 receive_seq=354 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=96558251 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000019 bytes_write=1057 bytes_read=5547 bytes_retransmit=0 bytes_invalid=0 send_seq=146 receive_seq=146 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999564 adj=56452398 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1661 bytes_read=10766 bytes_retransmit=9 bytes_invalid=0 send_seq=186 receive_seq=186 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=72259320 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1650 bytes_read=10745 bytes_retransmit=9 bytes_invalid=0 send_seq=184 receive_seq=184 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999882 adj=72259196 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=524 bytes_read=21333 bytes_retransmit=0 bytes_invalid=0 send_seq=86 receive_seq=86 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999774 adj=36129374 coil_temp=29.3 refs=0 mcu_temp=30.17 supply_voltage=3.026 sysload=2.81 cputime=9.558 memavail=419236 print_time=88.428 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
toolhead: max_velocity: 36000.000000
max_accel: 8000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
MCU 'mcu' shutdown: Timer too close
clocksync state: mcu_freq=180000000 last_clock=21530972246 clock_est=(102.291 17695492424 96558251.866) min_half_rtt=0.000071 min_rtt_time=116.214 time_avg=102.291(639.110) clock_avg=17695492424.971(61711297239.149) pred_variance=32400000000.000
Dumping serial stats: bytes_write=4482 bytes_read=13894 bytes_retransmit=248 bytes_invalid=0 send_seq=359 receive_seq=355 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=16 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 78.934496 78.934496 14: seq: 13, tmcuart_send oid=6 write=b'\xea\x03H \xe4' read=10
Sent 1 78.938923 78.938923 19: seq: 14, tmcuart_send oid=6 write=b'\xea\x03h2\x80\x1e\xfa\xef?\xdf' read=0
Sent 2 78.941576 78.941576 14: seq: 15, tmcuart_send oid=6 write=b'\xea\x03H \xe4' read=10
Sent 3 78.946236 78.946236 19: seq: 16, tmcuart_send oid=6 write=b'\xea\x03\x882\x80\x00\x02\x08\xa0\xe6' read=0
Sent 4 78.949400 78.949400 14: seq: 17, tmcuart_send oid=6 write=b'\xea\x03H \xe4' read=10
Sent 5 78.954038 78.954038 19: seq: 18, tmcuart_send oid=6 write=b'\xea\x03H8\x80\x00\x02\x08 \xde' read=0
Sent 6 78.957090 78.957090 14: seq: 19, tmcuart_send oid=6 write=b'\xea\x03H \xe4' read=10
Sent 7 78.961503 78.961503 19: seq: 1a, tmcuart_send oid=6 write=b'\xea\x03\x08>\xe4\x1ar\x88\xa4\x85' read=0
Sent 8 78.964177 78.964177 14: seq: 1b, tmcuart_send oid=6 write=b'\xea\x03H \xe4' read=10
Sent 9 78.968580 78.968580 19: seq: 1c, tmcuart_send oid=6 write=b'\xea\x03(2\x80\x00\x02\x88"\xf3' read=0
Sent 10 78.971220 78.971220 14: seq: 1d, tmcuart_send oid=6 write=b'\xea\x03H \xe4' read=10
Sent 11 78.975893 78.975893 19: seq: 1e, tmcuart_send oid=6 write=b'\xea\x03\x088\x80\x00\x02\x08 \xba' read=0
Sent 12 78.978634 78.978634 14: seq: 1f, tmcuart_send oid=6 write=b'\xea\x03H \xe4' read=10
Sent 13 78.982991 78.982991 14: seq: 10, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 14 78.987265 78.987265 19: seq: 11, tmcuart_send oid=7 write=b'\xea\x03\x080\x80\x00\n\x08\xb8\x87' read=0
Sent 15 78.990140 78.990140 14: seq: 12, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 16 78.994092 78.994092 19: seq: 13, tmcuart_send oid=7 write=b'\xea\x03h0\x80\x00\x12\x08 \xda' read=0
Sent 17 78.996849 78.996849 14: seq: 14, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 18 79.001487 79.001487 19: seq: 15, tmcuart_send oid=7 write=b'\xea\x03\x88=\x91\x02\x02h\xac\x9c' read=0
Sent 19 79.004199 79.004199 14: seq: 16, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 20 79.008581 79.008581 19: seq: 17, tmcuart_send oid=7 write=b'\xea\x03\x082\x80\x10\xe2\x88#\xf9' read=0
Sent 21 79.011298 79.011298 14: seq: 18, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 22 79.015853 79.015853 19: seq: 19, tmcuart_send oid=7 write=b'\xea\x03h2\x80\x1e\xfa\xef?\xdf' read=0
Sent 23 79.018529 79.018529 14: seq: 1a, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 24 79.023083 79.023083 19: seq: 1b, tmcuart_send oid=7 write=b'\xea\x03\x882\x80\x00\x02\x08\xa0\xe6' read=0
Sent 25 79.025783 79.025783 14: seq: 1c, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 26 79.030097 79.030097 19: seq: 1d, tmcuart_send oid=7 write=b'\xea\x03H8\x80\x00\x02\x08 \xde' read=0
Sent 27 79.033044 79.033044 14: seq: 1e, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 28 79.037710 79.037710 19: seq: 1f, tmcuart_send oid=7 write=b'\xea\x03\x08>\xe4\x1ar\x88\xa4\x85' read=0
Sent 29 79.040498 79.040498 14: seq: 10, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 30 79.045065 79.045065 19: seq: 11, tmcuart_send oid=7 write=b'\xea\x03(2\x80\x00\x02\x88"\xf3' read=0
Sent 31 79.047809 79.047809 14: seq: 12, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 32 79.052214 79.052214 19: seq: 13, tmcuart_send oid=7 write=b'\xea\x03\x088\x80\x00\x02\x08 \xba' read=0
Sent 33 79.054847 79.054847 14: seq: 14, tmcuart_send oid=7 write=b'\xea\x03H \xe4' read=10
Sent 34 79.059397 79.059397 14: seq: 15, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 35 79.063294 79.063294 19: seq: 16, tmcuart_send oid=8 write=b'\xea\x03\x080\x80\x00\n\x08\xb8\x87' read=0
Sent 36 79.066126 79.066126 14: seq: 17, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 37 79.070051 79.070051 19: seq: 18, tmcuart_send oid=8 write=b'\xea\x03h0\x80\x00\x12\x08 \xda' read=0
Sent 38 79.072930 79.072930 14: seq: 19, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 39 79.077504 79.077504 19: seq: 1a, tmcuart_send oid=8 write=b'\xea\x03\x88=\x91\x02\x02h\xac\x9c' read=0
Sent 40 79.080415 79.080415 14: seq: 1b, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 41 79.084984 79.084984 19: seq: 1c, tmcuart_send oid=8 write=b'\xea\x03\x082\x80\x10\xe2\x88#\xf9' read=0
Sent 42 79.087798 79.087798 14: seq: 1d, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 43 79.092380 79.092380 19: seq: 1e, tmcuart_send oid=8 write=b'\xea\x03h2\x80\x1e\xfa\xef?\xdf' read=0
Sent 44 79.095035 79.095035 14: seq: 1f, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 45 79.099618 79.099618 19: seq: 10, tmcuart_send oid=8 write=b'\xea\x03\x882\x80\x00\x02\x08\xa0\xe6' read=0
Sent 46 79.102453 79.102453 14: seq: 11, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 47 79.106775 79.106775 19: seq: 12, tmcuart_send oid=8 write=b'\xea\x03H8\x80\x00\x02\x08 \xde' read=0
Sent 48 79.109455 79.109455 14: seq: 13, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 49 79.113768 79.113768 19: seq: 14, tmcuart_send oid=8 write=b'\xea\x03\x08>\xe4\x1ar\x88\xa4\x85' read=0
Sent 50 79.116615 79.116615 14: seq: 15, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 51 79.121258 79.121258 19: seq: 16, tmcuart_send oid=8 write=b'\xea\x03(2\x80\x00\x02\x88"\xf3' read=0
Sent 52 79.124253 79.124253 14: seq: 17, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 53 79.128959 79.128959 19: seq: 18, tmcuart_send oid=8 write=b'\xea\x03\x088\x80\x00\x02\x08 \xba' read=0
Sent 54 79.131841 79.131841 14: seq: 19, tmcuart_send oid=8 write=b'\xea\x03H \xe4' read=10
Sent 55 79.521899 79.521899 31: seq: 1a, neopixel_update oid=11 pos=0 data=b'\x00\x00', neopixel_update oid=11 pos=2 data=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Sent 56 79.527386 79.527386 7: seq: 1b, neopixel_send oid=11
Sent 57 79.528250 79.528250 7: seq: 1c, stepper_get_position oid=12
Sent 58 79.529247 79.529247 14: seq: 1d, tmcuart_send oid=2 write=b'\xea\x03H-\xd5' read=10
Sent 59 79.556085 79.556085 7: seq: 1e, stepper_get_position oid=14
Sent 60 79.560098 79.560098 14: seq: 1f, tmcuart_send oid=4 write=b'\xea\x03H-\xd5' read=10
Sent 61 79.564637 79.564637 7: seq: 10, stepper_get_position oid=17
Sent 62 79.565158 79.565158 14: seq: 11, tmcuart_send oid=5 write=b'\xea\x03H-\xd5' read=10
Sent 63 79.569857 79.569857 7: seq: 12, stepper_get_position oid=18
Sent 64 79.570562 79.570562 14: seq: 13, tmcuart_send oid=6 write=b'\xea\x03H-\xd5' read=10
Sent 65 79.575214 79.575214 7: seq: 14, stepper_get_position oid=20
Sent 66 79.575996 79.575996 14: seq: 15, tmcuart_send oid=7 write=b'\xea\x03H-\xd5' read=10
Sent 67 79.580616 79.580616 7: seq: 16, stepper_get_position oid=21
Sent 68 79.581267 79.581267 14: seq: 17, tmcuart_send oid=8 write=b'\xea\x03H-\xd5' read=10
Sent 69 79.585809 79.585809 7: seq: 18, stepper_get_position oid=22
Sent 70 79.586767 79.586767 14: seq: 19, tmcuart_send oid=3 write=b'\xea\x03H-\xd5' read=10
Sent 71 79.870873 79.870873 6: seq: 1a, get_clock
Sent 72 80.855023 80.855023 6: seq: 1b, get_clock
Sent 73 114.248550 114.248550 6: seq: 1c, get_clock
Sent 74 115.230225 115.230225 6: seq: 1d, get_clock
Sent 75 116.214386 116.214386 6: seq: 1e, get_clock
Sent 76 117.198620 117.198620 6: seq: 1f, get_clock
Sent 77 118.182890 118.182890 6: seq: 10, get_clock
Sent 78 119.167151 119.167151 6: seq: 11, get_clock
Sent 79 120.151430 120.151430 6: seq: 12, get_clock
Sent 80 121.135503 121.135503 6: seq: 13, get_clock
Sent 81 122.119927 122.119927 6: seq: 14, get_clock
Sent 82 123.104049 123.104049 6: seq: 15, get_clock
Sent 83 124.088281 124.088281 6: seq: 16, get_clock
Sent 84 125.072683 125.072683 6: seq: 17, get_clock
Sent 85 126.056693 126.056693 6: seq: 18, get_clock
Sent 86 127.041711 127.041711 6: seq: 19, get_clock
Sent 87 128.025944 128.025944 6: seq: 1a, get_clock
Sent 88 129.010210 129.010210 6: seq: 1b, get_clock
Sent 89 129.994494 129.994494 6: seq: 1c, get_clock
Sent 90 130.978861 130.978861 6: seq: 1d, get_clock
Sent 91 131.963045 131.963045 6: seq: 1e, get_clock
Sent 92 132.948184 132.948184 6: seq: 1f, get_clock
Sent 93 133.932959 133.932959 6: seq: 10, get_clock
Sent 94 134.917311 134.917311 6: seq: 11, get_clock
Sent 95 135.670920 135.670920 56: seq: 12, set_next_step_dir oid=18 dir=0, set_next_step_dir oid=20 dir=0, set_next_step_dir oid=21 dir=0, queue_digital_out oid=34 clock=3782345382 on_ticks=0, queue_digital_out oid=35 clock=3782345382 on_ticks=0, queue_digital_out oid=36 clock=3782345382 on_ticks=0, queue_step oid=18 interval=3782475286 count=1 add=0, queue_step oid=18 interval=90649 count=3 add=-20728
Sent 96 135.670920 135.670920 57: seq: 13, queue_step oid=20 interval=3782475286 count=1 add=0, queue_step oid=20 interval=90649 count=3 add=-20728, queue_step oid=21 interval=3782475286 count=1 add=0, queue_step oid=21 interval=90649 count=3 add=-20728, queue_step oid=18 interval=45618 count=7 add=-3215, queue_step oid=20 interval=45618 count=7 add=-3215
Sent 97 135.670920 135.670920 61: seq: 14, queue_step oid=21 interval=45618 count=7 add=-3215, queue_step oid=18 interval=27123 count=16 add=-691, queue_step oid=20 interval=27123 count=16 add=-691, queue_step oid=21 interval=27123 count=16 add=-691, queue_step oid=18 interval=17170 count=36 add=-178, queue_step oid=20 interval=17170 count=36 add=-178, queue_step oid=21 interval=17170 count=36 add=-178
Sent 98 135.670920 135.670920 58: seq: 15, queue_step oid=18 interval=11393 count=65 add=-57, queue_step oid=20 interval=11393 count=65 add=-57, queue_step oid=21 interval=11393 count=65 add=-57, queue_step oid=18 interval=8096 count=93 add=-23, queue_step oid=20 interval=8096 count=93 add=-23, queue_step oid=21 interval=8096 count=93 add=-23, queue_step oid=18 interval=6179 count=123 add=-11, queue_step oid=20 interval=6179 count=123 add=-11
Sent 99 135.670920 135.670920 62: seq: 16, queue_step oid=21 interval=6179 count=123 add=-11, queue_step oid=18 interval=4960 count=155 add=-6, queue_step oid=20 interval=4960 count=155 add=-6, queue_step oid=21 interval=4960 count=155 add=-6, queue_step oid=18 interval=4144 count=129 add=-4, queue_step oid=20 interval=4144 count=129 add=-4, queue_step oid=21 interval=4144 count=129 add=-4, queue_step oid=18 interval=3750 count=21812 add=0
Dumping receive queue 100 messages
Receive: 0 123.104300 123.104049 11: seq: 16, clock clock=2224709249
Receive: 1 123.187323 123.104049 14: seq: 16, analog_in_state oid=24 next_clock=2292363520 value=7665
Receive: 2 123.197313 123.104049 15: seq: 16, analog_in_state oid=25 next_clock=2294163520 value=31057
Receive: 3 123.487252 123.104049 14: seq: 16, analog_in_state oid=24 next_clock=2346363520 value=7665
Receive: 4 123.497248 123.104049 15: seq: 16, analog_in_state oid=25 next_clock=2348163520 value=31059
Receive: 5 123.787282 123.104049 14: seq: 16, analog_in_state oid=24 next_clock=2400363520 value=7668
Receive: 6 123.797264 123.104049 15: seq: 16, analog_in_state oid=25 next_clock=2402163520 value=31062
Receive: 7 124.087284 123.104049 14: seq: 16, analog_in_state oid=24 next_clock=2454363520 value=7668
Receive: 8 124.088518 124.088281 11: seq: 17, clock clock=2401876109
Receive: 9 124.097277 124.088281 15: seq: 17, analog_in_state oid=25 next_clock=2456163520 value=31060
Receive: 10 124.387282 124.088281 14: seq: 17, analog_in_state oid=24 next_clock=2508363520 value=7668
Receive: 11 124.397245 124.088281 15: seq: 17, analog_in_state oid=25 next_clock=2510163520 value=31059
Receive: 12 124.687267 124.088281 14: seq: 17, analog_in_state oid=24 next_clock=2562363520 value=7669
Receive: 13 124.697274 124.088281 15: seq: 17, analog_in_state oid=25 next_clock=2564163520 value=31057
Receive: 14 124.987266 124.088281 14: seq: 17, analog_in_state oid=24 next_clock=2616363520 value=7664
Receive: 15 124.997246 124.088281 15: seq: 17, analog_in_state oid=25 next_clock=2618163520 value=31059
Receive: 16 125.072865 125.072683 11: seq: 18, clock clock=2579060249
Receive: 17 125.287282 125.072683 14: seq: 18, analog_in_state oid=24 next_clock=2670363520 value=7665
Receive: 18 125.297257 125.072683 15: seq: 18, analog_in_state oid=25 next_clock=2672163520 value=31058
Receive: 19 125.587291 125.072683 14: seq: 18, analog_in_state oid=24 next_clock=2724363520 value=7664
Receive: 20 125.597233 125.072683 15: seq: 18, analog_in_state oid=25 next_clock=2726163520 value=31056
Receive: 21 125.887344 125.072683 14: seq: 18, analog_in_state oid=24 next_clock=2778363520 value=7665
Receive: 22 125.897313 125.072683 15: seq: 18, analog_in_state oid=25 next_clock=2780163520 value=31058
Receive: 23 126.056883 126.056693 11: seq: 19, clock clock=2756181453
Receive: 24 126.187275 126.056693 14: seq: 19, analog_in_state oid=24 next_clock=2832363520 value=7667
Receive: 25 126.197230 126.056693 15: seq: 19, analog_in_state oid=25 next_clock=2834163520 value=31057
Receive: 26 126.487377 126.056693 14: seq: 19, analog_in_state oid=24 next_clock=2886363520 value=7668
Receive: 27 126.497322 126.056693 15: seq: 19, analog_in_state oid=25 next_clock=2888163520 value=31057
Receive: 28 126.787358 126.056693 14: seq: 19, analog_in_state oid=24 next_clock=2940363520 value=7668
Receive: 29 126.797325 126.056693 15: seq: 19, analog_in_state oid=25 next_clock=2942163520 value=31056
Receive: 30 126.840281 126.056693 14: seq: 19, stats count=129 sum=115759 sumsq=632027
Receive: 31 127.042046 127.041711 11: seq: 1a, clock clock=2933491267
Receive: 32 127.087391 127.041711 14: seq: 1a, analog_in_state oid=24 next_clock=2994363520 value=7664
Receive: 33 127.097321 127.041711 15: seq: 1a, analog_in_state oid=25 next_clock=2996163520 value=31053
Receive: 34 127.387371 127.041711 14: seq: 1a, analog_in_state oid=24 next_clock=3048363520 value=7666
Receive: 35 127.397286 127.041711 15: seq: 1a, analog_in_state oid=25 next_clock=3050163520 value=31055
Receive: 36 127.687336 127.041711 14: seq: 1a, analog_in_state oid=24 next_clock=3102363520 value=7665
Receive: 37 127.697299 127.041711 15: seq: 1a, analog_in_state oid=25 next_clock=3104163520 value=31055
Receive: 38 127.987354 127.041711 14: seq: 1a, analog_in_state oid=24 next_clock=3156363520 value=7669
Receive: 39 127.997330 127.041711 15: seq: 1a, analog_in_state oid=25 next_clock=3158163520 value=31052
Receive: 40 128.026294 128.025944 11: seq: 1b, clock clock=3110653525
Receive: 41 128.287343 128.025944 14: seq: 1b, analog_in_state oid=24 next_clock=3210363520 value=7665
Receive: 42 128.297304 128.025944 15: seq: 1b, analog_in_state oid=25 next_clock=3212163520 value=31054
Receive: 43 128.587404 128.025944 14: seq: 1b, analog_in_state oid=24 next_clock=3264363520 value=7670
Receive: 44 128.597356 128.025944 15: seq: 1b, analog_in_state oid=25 next_clock=3266163520 value=31053
Receive: 45 128.887337 128.025944 14: seq: 1b, analog_in_state oid=24 next_clock=3318363520 value=7668
Receive: 46 128.897339 128.025944 15: seq: 1b, analog_in_state oid=25 next_clock=3320163520 value=31051
Receive: 47 129.010570 129.010210 11: seq: 1c, clock clock=3287825778
Receive: 48 129.187361 129.010210 14: seq: 1c, analog_in_state oid=24 next_clock=3372363520 value=7669
Receive: 49 129.197378 129.010210 15: seq: 1c, analog_in_state oid=25 next_clock=3374163520 value=31051
Receive: 50 129.487331 129.010210 14: seq: 1c, analog_in_state oid=24 next_clock=3426363520 value=7671
Receive: 51 129.497302 129.010210 15: seq: 1c, analog_in_state oid=25 next_clock=3428163520 value=31051
Receive: 52 129.787345 129.010210 14: seq: 1c, analog_in_state oid=24 next_clock=3480363520 value=7669
Receive: 53 129.797302 129.010210 15: seq: 1c, analog_in_state oid=25 next_clock=3482163520 value=31050
Receive: 54 129.994810 129.994494 11: seq: 1d, clock clock=3464994547
Receive: 55 130.087404 129.994494 14: seq: 1d, analog_in_state oid=24 next_clock=3534363520 value=7670
Receive: 56 130.097340 129.994494 15: seq: 1d, analog_in_state oid=25 next_clock=3536163520 value=31049
Receive: 57 130.387330 129.994494 14: seq: 1d, analog_in_state oid=24 next_clock=3588363520 value=7669
Receive: 58 130.397288 129.994494 15: seq: 1d, analog_in_state oid=25 next_clock=3590163520 value=31050
Receive: 59 130.687345 129.994494 14: seq: 1d, analog_in_state oid=24 next_clock=3642363520 value=7670
Receive: 60 130.697318 129.994494 15: seq: 1d, analog_in_state oid=25 next_clock=3644163520 value=31049
Receive: 61 130.979221 130.978861 11: seq: 1e, clock clock=3642184514
Receive: 62 130.987354 130.978861 14: seq: 1e, analog_in_state oid=24 next_clock=3696363520 value=7670
Receive: 63 130.997335 130.978861 15: seq: 1e, analog_in_state oid=25 next_clock=3698163520 value=31049
Receive: 64 131.287341 130.978861 14: seq: 1e, analog_in_state oid=24 next_clock=3750363520 value=7670
Receive: 65 131.297296 130.978861 15: seq: 1e, analog_in_state oid=25 next_clock=3752163520 value=31047
Receive: 66 131.588673 130.978861 14: seq: 1e, analog_in_state oid=24 next_clock=3804363520 value=7666
Receive: 67 131.597330 130.978861 15: seq: 1e, analog_in_state oid=25 next_clock=3806163520 value=31051
Receive: 68 131.887319 130.978861 14: seq: 1e, analog_in_state oid=24 next_clock=3858363520 value=7670
Receive: 69 131.887337 130.978861 14: seq: 1e, stats count=126 sum=112793 sumsq=615287
Receive: 70 131.897274 130.978861 15: seq: 1e, analog_in_state oid=25 next_clock=3860163520 value=31046
Receive: 71 131.963389 131.963045 11: seq: 1f, clock clock=3819334086
Receive: 72 132.187323 131.963045 14: seq: 1f, analog_in_state oid=24 next_clock=3912363520 value=7672
Receive: 73 132.197270 131.963045 15: seq: 1f, analog_in_state oid=25 next_clock=3914163520 value=31046
Receive: 74 132.487353 131.963045 14: seq: 1f, analog_in_state oid=24 next_clock=3966363520 value=7672
Receive: 75 132.497316 131.963045 15: seq: 1f, analog_in_state oid=25 next_clock=3968163520 value=31044
Receive: 76 132.787321 131.963045 14: seq: 1f, analog_in_state oid=24 next_clock=4020363520 value=7670
Receive: 77 132.797300 131.963045 15: seq: 1f, analog_in_state oid=25 next_clock=4022163520 value=31045
Receive: 78 132.948400 132.948184 11: seq: 10, clock clock=3996657993
Receive: 79 133.087379 132.948184 14: seq: 10, analog_in_state oid=24 next_clock=4074363520 value=7666
Receive: 80 133.097359 132.948184 15: seq: 10, analog_in_state oid=25 next_clock=4076163520 value=31043
Receive: 81 133.387315 132.948184 14: seq: 10, analog_in_state oid=24 next_clock=4128363520 value=7671
Receive: 82 133.397280 132.948184 15: seq: 10, analog_in_state oid=25 next_clock=4130163520 value=31044
Receive: 83 133.687314 132.948184 14: seq: 10, analog_in_state oid=24 next_clock=4182363520 value=7672
Receive: 84 133.697262 132.948184 15: seq: 10, analog_in_state oid=25 next_clock=4184163520 value=31045
Receive: 85 133.933178 133.932959 11: seq: 11, clock clock=4173918041
Receive: 86 133.987326 133.932959 13: seq: 11, analog_in_state oid=24 next_clock=4236363520 value=7674
Receive: 87 133.997285 133.932959 14: seq: 11, analog_in_state oid=25 next_clock=4238163520 value=31044
Receive: 88 134.287315 133.932959 13: seq: 11, analog_in_state oid=24 next_clock=4290363520 value=7670
Receive: 89 134.297291 133.932959 14: seq: 11, analog_in_state oid=25 next_clock=4292163520 value=31040
Receive: 90 134.587305 133.932959 13: seq: 11, analog_in_state oid=24 next_clock=49396224 value=7669
Receive: 91 134.597350 133.932959 14: seq: 11, analog_in_state oid=25 next_clock=51196224 value=31042
Receive: 92 134.887289 133.932959 13: seq: 11, analog_in_state oid=24 next_clock=103396224 value=7670
Receive: 93 134.897268 133.932959 14: seq: 11, analog_in_state oid=25 next_clock=105196224 value=31040
Receive: 94 134.917546 134.917311 10: seq: 12, clock clock=56135766
Receive: 95 135.187300 134.917311 13: seq: 12, analog_in_state oid=24 next_clock=157396224 value=7673
Receive: 96 135.197282 134.917311 14: seq: 12, analog_in_state oid=25 next_clock=159196224 value=31040
Receive: 97 135.487329 134.917311 14: seq: 12, analog_in_state oid=24 next_clock=211396224 value=7671
Receive: 98 135.497293 134.917311 15: seq: 12, analog_in_state oid=25 next_clock=213196224 value=31043
Receive: 99 135.671375 135.670920 11: seq: 13, shutdown clock=191798725 static_string_id=Timer too close
toolhead: max_velocity: 800.000000
max_accel: 10000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
Transition to shutdown state: MCU shutdown
Dumping gcode input 0 blocks
Dumping 20 requests for client 4119939008
Received 79.849020: b'{"id":4083496608,"method":"objects/subscribe","params":{"objects":{"webhooks":null},"response_template":{"method":"process_status_update"}}}'
Received 79.850639: b'{"id":4083496752,"method":"gcode/subscribe_output","params":{"response_template":{"method":"process_gcode_response"}}}'
Received 79.852054: b'{"id":4039834280,"method":"list_endpoints","params":{}}'
Received 79.854372: b'{"id":4040008272,"method":"objects/subscribe","params":{"objects":{"webhooks":null,"print_stats":null},"response_template":{"method":"process_status_update"}}}'
Received 80.102175: b'{"id":4083496608,"method":"objects/list","params":{}}'
Received 80.105325: b'{"id":4083496608,"method":"objects/query","params":{"objects":{"configfile":null}}}'
Received 80.397404: b'{"id":4083496752,"method":"register_remote_method","params":{"response_template":{"method":"shutdown_machine"},"remote_method":"shutdown_machine"}}'
Received 80.399507: b'{"id":4083496752,"method":"register_remote_method","params":{"response_template":{"method":"reboot_machine"},"remote_method":"reboot_machine"}}'
Received 80.400663: b'{"id":4083496752,"method":"register_remote_method","params":{"response_template":{"method":"pause_job_queue"},"remote_method":"pause_job_queue"}}'
Received 80.401706: b'{"id":4083496752,"method":"register_remote_method","params":{"response_template":{"method":"start_job_queue"},"remote_method":"start_job_queue"}}'
Received 80.404366: b'{"id":4039835096,"method":"objects/query","params":{"objects":{"heaters":null}}}'
Received 80.404366: b'{"id":4039834856,"method":"objects/query","params":{"objects":{"heaters":null}}}'
Received 80.602654: b'{"id":4039835600,"method":"objects/subscribe","params":{"objects":{"webhooks":null,"print_stats":null,"temperature_sensor Octopus_V1.1_F446":null,"temperature_sensor EBB42_v1.2_T0":null,"temperature_sensor EBB42_v1.2_T1":null,"temperature_sensor raspberry_pi":null,"heater_bed":null,"temperature_sensor beacon_coil":null,"extruder":null,"extruder1":null},"response_template":{"method":"process_status_update"}}}'
Received 80.854751: b'{"id":4083496608,"method":"objects/subscribe","params":{"objects":{"webhooks":null,"print_stats":null,"temperature_sensor Octopus_V1.1_F446":null,"temperature_sensor EBB42_v1.2_T0":null,"temperature_sensor EBB42_v1.2_T1":null,"temperature_sensor raspberry_pi":null,"heater_bed":null,"temperature_sensor beacon_coil":null,"extruder":null,"extruder1":null},"response_template":{"method":"process_status_update"}}}'
Received 114.245853: b'{"id":4039537232,"method":"objects/query","params":{"objects":{"gcode":["commands"]}}}'
Received 114.245853: b'{"id":4039536800,"method":"info","params":{}}'
Received 114.245853: b'{"id":4039537688,"method":"objects/list","params":{}}'
Received 114.323621: b'{"id":4039296888,"method":"objects/subscribe","params":{"objects":{"gcode":null,"webhooks":null,"configfile":null,"mcu":null,"mcu rpi":null,"mcu toolboard_t0":null,"mcu toolboard_t1":null,"heaters":null,"temperature_sensor Octopus_V1.1_F446":null,"temperature_sensor EBB42_v1.2_T0":null,"temperature_sensor EBB42_v1.2_T1":null,"gcode_macro RatOS":null,"gcode_macro HOME_X":null,"gcode_macro HOME_Y":null,"gcode_macro HOME_Z":null,"gcode_macro HOME_X_SENSORLESS":null,"gcode_macro HOME_Y_SENSORLESS":null,"gcode_macro _Z_HOP":null,"gcode_macro _MOVE_TO_SAFE_Z_HOME":null,"gcode_macro MAYBE_HOME":null,"gcode_macro PID_CALIBRATE_HOTEND":null,"gcode_macro PID_CALIBRATE_BED":null,"gcode_macro PID_CALIBRATE_CHAMBER_HEATER":null,"gcode_macro INITIALIZE_PA_TUNING":null,"gcode_macro CHAMBER_FILTER_ON":null,"gcode_macro CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_ON":null,"gcode_macro _CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_TURN_ON":null,"gcode_macro _CHAMBER_FILTER_TURN_OFF":null,"gcode_macro _CHAMBER_FILTER_SANITY_CHECK":null,"gcode_macro CHAMBER_HEATER_ON":null,"gcode_macro CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_ON":null,"gcode_macro _CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_ON":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_OFF":null,"gcode_macro _USER_CHAMBER_HEATER_BEFORE_PREHEATING":null,"gcode_macro _USER_CHAMBER_HEATER_AFTER_PREHEATING":null,"gcode_macro _LED_START_PRINTING":null,"gcode_macro _LED_START_PRINTING_ERROR":null,"gcode_macro _LED_PRINTING":null,"gcode_macro _LED_PAUSE":null,"gcode_macro _LED_CHAMBER_FILTER_ON":null,"gcode_macro _LED_CHAMBER_FILTER_OFF":null,"gcode_macro _LED_LOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_LOADED":null,"gcode_macro _LED_FILAMENT_RUNOUT":null,"gcode_macro _LED_FILAMENT_CLOG":null,"gcode_macro _LED_UNLOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_UNLOADED":null,"gcode_macro _LED_DEACTIVATE_TOOLHEAD":null,"gcode_macro _LED_TOOLHEAD_STANDBY":null,"gcode_macro _LED_TOOLHEAD_WAKEUP":null,"gcode_macro _LED_MOTORS_OFF":null,"gcode_macro _LED_INPUT_SHAPER_START":null,"gcode_macro _LED_INPUT_SHAPER_END":null,"gcode_macro _LED_BEACON_CALIBRATION_START":null,"gcode_macro _LED_BEACON_CALIBRATION_END":null,"gcode_macro _LED_BEACON_CALIBRATION_ERROR":null,"gcode_macro _LED_VAOC_ON":null,"gcode_macro _LED_VAOC_OFF":null,"gcode_macro _LED_ACTION":null,"gcode_macro _LED_SUCCESS":null,"gcode_macro _LED_HEATING":null,"gcode_macro _LED_COOLING":null,"gcode_macro _LED_ERROR":null,"gcode_macro _LED_ON":null,"gcode_macro _LED_OFF":null,"gcode_macro _LED_STANDBY":null,"gcode_macro _LED_SET":null,"gcode_macro _USER_LED_SET":null,"gcode_macro LOAD_FILAMENT":null,"gcode_macro _DEFAULT_LOAD_FILAMENT":null,"gcode_macro _IDEX_LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE":null,"gcode_macro _LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_INSERT":null,"gcode_macro _PURGE_BEFORE_UNLOAD":null,"gcode_macro _PURGE_FILAMENT":null,"gcode_macro _MOVE_TO_PARKING_POSITION":null,"gcode_macro _MOVE_TO_LOADING_POSITION":null,"gcode_macro _CLEANING_MOVE":null,"gcode_macro _START_PRINT_BED_MESH":null,"gcode_macro CALIBRATE_ADAPTIVE_MESH":null,"gcode_macro M84":null,"gcode_macro M104":null,"gcode_macro M109":null,"gcode_macro SET_HEATER_TEMPERATURE":null,"gcode_macro TEMPERATURE_WAIT":null,"gcode_macro SET_GCODE_OFFSET":null,"gcode_macro SDCARD_PRINT_FILE":null,"gcode_macro SKEW_PROFILE":null,"gcode_macro SET_SKEW":null,"gcode_macro SET_VELOCITY_LIMIT":null,"gcode_macro _START_PRINT_PARK":null,"gcode_macro _END_PRINT_PARK":null,"gcode_macro _PARK":null,"gcode_macro SAVE_PROBE_RESULT":null,"gcode_macro PROBE_FOR_PRIMING":null,"gcode_macro RESET_PRIME_PROBE_STATE":null,"gcode_macro PROBE_CURRENT_POSITION":null,"gcode_macro PRIME_BLOB":null,"gcode_macro UNLOAD_FILAMENT":null,"gcode_macro _LEGACY_UNLOAD_FILAMENT":null,"gcode_macro _DEFAULT_UNLOAD_FILAMENT":null,"gcode_macro _IDEX_UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE":null,"gcode_macro _UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER":null,"gcode_macro _UNLOAD_WITH_TIP_FORMING":null,"gcode_macro _UNLOAD_KNOWN_FILAMENT":null,"gcode_macro _UNLOAD_UNKNOWN_FILAMENT":null,"gcode_macro _TIP_FORMING":null,"gcode_macro _ON_FILAMENT_SENSOR_BUTTON_PRESSED":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_FILAMENT_END":null,"gcode_macro M600":null,"gcode_macro COLD_PULL":null,"gcode_macro _USER_START_PRINT_BEFORE_HOMING":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _USER_START_PRINT_BED_MESH":null,"gcode_macro _USER_START_PRINT_PARK":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _USER_START_PRINT_HEAT_CHAMBER":null,"gcode_macro _USER_END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_PARK":null,"gcode_macro _USER_END_PRINT_FINISHED":null,"gcode_macro _USER_START_PRINT":null,"gcode_macro _USER_END_START_PRINT":null,"gcode_macro _USER_START_FEATURE":null,"gcode_macro _USER_END_FEATURE":null,"gcode_macro ECHO_T_VARS":null,"gcode_macro ECHO_RATOS_VARS":null,"gcode_macro INITIAL_FRONTEND_UPDATE":null,"gcode_macro CALCULATE_PRINTABLE_AREA":null,"gcode_macro CACHE_TOOLHEAD_SETTINGS":null,"gcode_macro RESTORE_TOOLHEAD_SETTINGS":null,"gcode_macro SET_MACRO_TRAVEL_SETTINGS":null,"gcode_macro SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro IDEX_SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro VERIFY_HYBRID_INVERTED":null,"gcode_macro RATOS_ECHO":null,"gcode_macro ENABLE_DEBUG":null,"gcode_macro DISABLE_DEBUG":null,"gcode_macro DEBUG_ECHO":null,"gcode_macro START_FEATURE":null,"gcode_macro END_FEATURE":null,"gcode_macro _ON_LAYER_CHANGE":null,"gcode_macro _LEARN_MORE_CALIBRATION":null,"gcode_macro _LEARN_MORE_CHAMBER_FILTER":null,"gcode_macro _LEARN_MORE_FILAMENT":null,"gcode_macro _CONSOLE_SAVE_CONFIG":null,"gcode_macro SAVE_Z_OFFSET":null,"gcode_macro _LOAD_RATOS_SKEW_PROFILE":null,"gcode_macro M601":null,"gcode_macro PAUSE":null,"gcode_macro RESUME":null,"gcode_macro CANCEL_PRINT":null,"gcode_macro START_PRINT":null,"gcode_macro _START_PRINT_BEFORE_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _PRIME":null,"gcode_macro END_PRINT":null,"gcode_macro _END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _SET_EXTRUSION_MODE":null,"gcode_macro GENERATE_SHAPER_GRAPHS":null,"gcode_macro MEASURE_COREXY_BELT_TENSION":null,"idle_timeout":null,"temperature_host raspberry_pi":null,"temperature_sensor raspberry_pi":null,"gcode_move":null,"print_stats":null,"virtual_sdcard":null,"display_status":null,"pause_resume":null,"ratos":null,"exclude_object":null,"heater_bed":null,"fan":null,"heater_fan toolhead_cooling_fan":null,"gcode_macro IDEX_SINGLE":null,"gcode_macro _IDEX_SINGLE":null,"gcode_macro IDEX_COPY":null,"gcode_macro _IDEX_COPY":null,"gcode_macro IDEX_MIRROR":null,"gcode_macro _IDEX_MIRROR":null,"gcode_macro _IDEX_SET_TOOLHEADS":null,"gcode_macro IDEX_PARK":null,"gcode_macro PARK_TOOLHEAD":null,"gcode_macro JOIN_SPOOLS":null,"gcode_macro _IDEX_JOIN_SPOOLS":null,"gcode_macro _JOIN_SPOOL":null,"gcode_macro REMAP_TOOLHEADS":null,"gcode_macro _IDEX_REMAP_TOOLHEADS":null,"gcode_macro SHAPER_CALIBRATE":null,"gcode_macro SET_PRESSURE_ADVANCE":null,"gcode_macro M106":null,"gcode_macro M107":null,"gcode_macro _SELECT_TOOL":null,"gcode_macro _TOOLHEAD_STANDBY":null,"gcode_macro _TOOLHEAD_WAKEUP":null,"gcode_macro _TOOLCHANGE":null,"gcode_macro _ZHOP_BEFORE_TOOLCHANGE":null,"gcode_macro _ZDROP_AFTER_TOOLCHANGE":null,"gcode_macro _EXTRUDE":null,"gcode_macro _DEACTIVATE_TOOLHEAD":null,"gcode_macro _SET_TOOLHEAD_OFFSET":null,"gcode_macro TOOLSHIFT_CONFIG":null,"gcode_macro CALCULATE_DC_ENDSTOP":null,"gcode_macro INCREASE_Y_MAX":null,"gcode_macro _VAOC":null,"gcode_macro _VAOC_START":null,"gcode_macro _START_VAOC":null,"gcode_macro _VAOC_END":null,"gcode_macro _VAOC_LOAD_TOOL":null,"gcode_macro _VAOC_SET_CAMERA_COOLING":null,"gcode_macro _VAOC_SET_TOOL":null,"gcode_macro _VAOC_MOVE":null,"gcode_macro _VAOC_CALIBRATE_Z_OFFSET":null,"gcode_macro _VAOC_PROBE_Z_OFFSET":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_CURRENT_POSITION":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT":null,"gcode_macro _VAOC_ECHO_Z_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_TEMP_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS":null,"gcode_macro _VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT":null,"gcode_macro _VAOC_ENSURE_SAFE_Z_HEIGHT":null,"gcode_macro _VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED":null,"gcode_macro _VAOC_RESET":null,"gcode_macro _ECHO_VAOC_VARS":null,"gcode_macro _VAOC_SWITCH_LED":null,"gcode_macro Z_PROBE_TEST_T0":null,"gcode_macro Z_PROBE_TEST_T1":null,"gcode_macro Z_PROBE_TEST":null,"gcode_macro _VAOC_Z_PROBE_LOOP":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T0":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T1":null,"gcode_macro _SHAKE_IT":null,"gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _VAOC_TEST_Z_OFFSET":null,"gcode_macro Z_TILT_ADJUST":null,"bed_mesh":null,"z_tilt":null,"firmware_retraction":null,"stepper_enable":null,"tmc2209 stepper_x":null,"tmc2209 dual_carriage":null,"tmc2209 stepper_y":null,"tmc2209 stepper_y1":null,"tmc2209 stepper_z":null,"tmc2209 stepper_z1":null,"tmc2209 stepper_z2":null,"tmc2209 extruder":null,"tmc2209 extruder1":null,"beacons":null,"mcu beacon":null,"probe":null,"temperature_sensor beacon_coil":null,"beacon":null,"gcode_macro BEACON_RATOS_CALIBRATION":null,"gcode_macro BEACON_RATOS_CALIBRATE":null,"gcode_macro BEACON_INITIAL_CALIBRATION":null,"gcode_macro BEACON_FINAL_CALIBRATION":null,"gcode_macro BEACON_POKE_TEST":null,"gcode_macro _BEACON_PROBE_POKE":null,"gcode_macro _BEACON_STORE_POKE":null,"gcode_macro _BEACON_CHECK_POKE":null,"gcode_macro _BEACON_ECHO_POKE":null,"gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET":null,"gcode_macro BEACON_MEASURE_GANTRY_TWIST":null,"gcode_macro _BEACON_PROBE_GANTRY_TWIST":null,"gcode_macro _BEACON_STORE_GANTRY_TWIST":null,"gcode_macro _BEACON_ECHO_GANTRY_TWIST":null,"gcode_macro BEACON_CREATE_SCAN_COMPENSATION_MESH":null,"gcode_macro _BEACON_APPLY_SCAN_COMPENSATION":null,"gcode_macro _BEACON_MAYBE_SCAN_COMPENSATION":null,"gcode_macro _BEACON_HOME_AND_ABL":null,"gcode_macro _BEACON_SAVE_MULTIPLIER":null,"gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER":null,"fan_generic part_fan_t0":null,"fan_generic part_fan_t1":null,"heater_fan toolhead_cooling_fan_t1":null,"controller_fan controller_fan":null,"gcode_macro T0":null,"gcode_macro T1":null,"save_variables":null,"fan_generic filter":null,"filament_switch_sensor toolhead_filament_sensor_t0":null,"gcode_button toolhead_filament_sensor_button_t0":null,"filament_switch_sensor toolhead_filament_sensor_t1":null,"gcode_button toolhead_filament_sensor_button_t1":null,"z_offset_probe":null,"neopixel vaoc_led":null,"heater_fan vaoc_fan":null,"motion_report":null,"query_endstops":null,"dual_carriage":null,"system_stats":null,"manual_probe":null,"toolhead":null,"extruder":null,"extruder1":null},"response_template":{"method":"process_status_update"}}}'
Received 115.149792: b'{"id":4039834664,"method":"objects/query","params":{"objects":{"extruder":["can_extrude"],"extruder1":["can_extrude"]}}}'
Received 135.629112: b'{"id":4040011104,"method":"gcode/script","params":{"script":"G28"}}'
MCU 'rpi' shutdown: Command request
clocksync state: mcu_freq=50000000 last_clock=5795896532 clock_est=(102.513 4175618796 49999564.326) min_half_rtt=0.000050 min_rtt_time=123.104 time_avg=102.512(627.584) clock_avg=4175618796.755(31378938013.723) pred_variance=751889807.737 clock_adj=(7.444 54959624.750)
Dumping serial stats: bytes_write=1063 bytes_read=5559 bytes_retransmit=0 bytes_invalid=0 send_seq=147 receive_seq=147 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 75.942823 75.942823 9: seq: 1f, identify offset=1240 count=40
Sent 1 75.943138 75.943138 9: seq: 10, identify offset=1280 count=40
Sent 2 75.943452 75.943452 9: seq: 11, identify offset=1320 count=40
Sent 3 75.943768 75.943768 9: seq: 12, identify offset=1360 count=40
Sent 4 75.944112 75.944112 9: seq: 13, identify offset=1400 count=40
Sent 5 75.944436 75.944436 9: seq: 14, identify offset=1440 count=40
Sent 6 75.944786 75.944786 9: seq: 15, identify offset=1480 count=40
Sent 7 75.945103 75.945103 9: seq: 16, identify offset=1520 count=40
Sent 8 75.945417 75.945417 9: seq: 17, identify offset=1560 count=40
Sent 9 75.945730 75.945730 9: seq: 18, identify offset=1600 count=40
Sent 10 75.946123 75.946123 9: seq: 19, identify offset=1640 count=40
Sent 11 75.946444 75.946444 9: seq: 1a, identify offset=1680 count=40
Sent 12 75.946760 75.946760 9: seq: 1b, identify offset=1720 count=40
Sent 13 75.947074 75.947074 9: seq: 1c, identify offset=1760 count=40
Sent 14 75.947390 75.947390 9: seq: 1d, identify offset=1800 count=40
Sent 15 75.947705 75.947705 9: seq: 1e, identify offset=1840 count=40
Sent 16 75.948040 75.948040 9: seq: 1f, identify offset=1880 count=40
Sent 17 75.948383 75.948383 9: seq: 10, identify offset=1920 count=40
Sent 18 75.948701 75.948701 9: seq: 11, identify offset=1960 count=40
Sent 19 75.949017 75.949017 9: seq: 12, identify offset=2000 count=40
Sent 20 75.949331 75.949331 9: seq: 13, identify offset=2040 count=40
Sent 21 75.949645 75.949645 9: seq: 14, identify offset=2080 count=40
Sent 22 75.949965 75.949965 9: seq: 15, identify offset=2120 count=40
Sent 23 75.950293 75.950293 9: seq: 16, identify offset=2160 count=40
Sent 24 75.950610 75.950610 9: seq: 17, identify offset=2200 count=40
Sent 25 75.950925 75.950925 9: seq: 18, identify offset=2240 count=40
Sent 26 75.951238 75.951238 9: seq: 19, identify offset=2280 count=40
Sent 27 75.952340 75.952340 9: seq: 1a, identify offset=2320 count=40
Sent 28 75.952718 75.952718 9: seq: 1b, identify offset=2360 count=40
Sent 29 75.953051 75.953051 9: seq: 1c, identify offset=2400 count=40
Sent 30 75.953377 75.953377 9: seq: 1d, identify offset=2440 count=40
Sent 31 75.953697 75.953697 9: seq: 1e, identify offset=2480 count=40
Sent 32 75.954111 75.954111 9: seq: 1f, identify offset=2520 count=40
Sent 33 75.954439 75.954439 9: seq: 10, identify offset=2560 count=40
Sent 34 75.954762 75.954762 9: seq: 11, identify offset=2600 count=40
Sent 35 75.955081 75.955081 9: seq: 12, identify offset=2640 count=40
Sent 36 75.955397 75.955397 9: seq: 13, identify offset=2680 count=40
Sent 37 75.955715 75.955715 9: seq: 14, identify offset=2720 count=40
Sent 38 75.956059 75.956059 9: seq: 15, identify offset=2760 count=40
Sent 39 75.956387 75.956387 9: seq: 16, identify offset=2800 count=40
Sent 40 75.956707 75.956707 9: seq: 17, identify offset=2840 count=40
Sent 41 75.957029 75.957029 9: seq: 18, identify offset=2880 count=40
Sent 42 75.957344 75.957344 9: seq: 19, identify offset=2920 count=40
Sent 43 75.957661 75.957661 9: seq: 1a, identify offset=2960 count=40
Sent 44 75.957984 75.957984 9: seq: 1b, identify offset=3000 count=40
Sent 45 75.958307 75.958307 9: seq: 1c, identify offset=3040 count=40
Sent 46 75.958619 75.958619 9: seq: 1d, identify offset=3080 count=40
Sent 47 75.958934 75.958934 9: seq: 1e, identify offset=3120 count=40
Sent 48 75.959250 75.959250 9: seq: 1f, identify offset=3160 count=40
Sent 49 75.959564 75.959564 9: seq: 10, identify offset=3200 count=40
Sent 50 75.959878 75.959878 9: seq: 11, identify offset=3240 count=40
Sent 51 75.960224 75.960224 9: seq: 12, identify offset=3280 count=40
Sent 52 75.960543 75.960543 9: seq: 13, identify offset=3320 count=40
Sent 53 75.960895 75.960895 9: seq: 14, identify offset=3360 count=40
Sent 54 75.961229 75.961229 9: seq: 15, identify offset=3387 count=40
Sent 55 75.987616 75.987616 6: seq: 16, get_uptime
Sent 56 76.038571 76.038571 6: seq: 17, get_clock
Sent 57 76.089296 76.089296 6: seq: 18, get_clock
Sent 58 76.140122 76.140122 6: seq: 19, get_clock
Sent 59 76.190916 76.190916 6: seq: 1a, get_clock
Sent 60 76.241685 76.241685 6: seq: 1b, get_clock
Sent 61 76.292523 76.292523 6: seq: 1c, get_clock
Sent 62 76.343333 76.343333 6: seq: 1d, get_clock
Sent 63 76.394139 76.394139 6: seq: 1e, get_clock
Sent 64 76.402424 76.402424 6: seq: 1f, get_clock
Sent 65 77.387458 77.387458 6: seq: 10, get_clock
Sent 66 78.371796 78.371796 6: seq: 11, get_clock
Sent 67 78.440238 78.440238 6: seq: 12, get_config
Sent 68 78.441343 78.441343 7: seq: 13, allocate_oids count=1
Sent 69 78.441611 78.441611 11: seq: 14, config_digital_out oid=0 pin=gpiochip0/gpio4 value=0 default_value=1 max_duration=0
Sent 70 78.441923 78.441923 10: seq: 15, set_digital_out_pwm_cycle oid=0 cycle_ticks=500000
Sent 71 78.442097 78.442097 11: seq: 16, finalize_config crc=2738712656
Sent 72 78.442380 78.442380 13: seq: 17, queue_digital_out oid=0 clock=2982041085 on_ticks=0
Sent 73 78.442594 78.442594 6: seq: 18, get_config
Sent 74 79.356699 79.356699 6: seq: 19, get_clock
Sent 75 80.341593 80.341593 6: seq: 1a, get_clock
Sent 76 81.325808 81.325808 6: seq: 1b, get_clock
Sent 77 114.248581 114.248581 6: seq: 1c, get_clock
Sent 78 115.230250 115.230250 6: seq: 1d, get_clock
Sent 79 116.214413 116.214413 6: seq: 1e, get_clock
Sent 80 117.198719 117.198719 6: seq: 1f, get_clock
Sent 81 118.182995 118.182995 6: seq: 10, get_clock
Sent 82 119.167254 119.167254 6: seq: 11, get_clock
Sent 83 120.151644 120.151644 6: seq: 12, get_clock
Sent 84 121.135719 121.135719 6: seq: 13, get_clock
Sent 85 122.120038 122.120038 6: seq: 14, get_clock
Sent 86 123.104162 123.104162 6: seq: 15, get_clock
Sent 87 124.088382 124.088382 6: seq: 16, get_clock
Sent 88 125.072792 125.072792 6: seq: 17, get_clock
Sent 89 126.056713 126.056713 6: seq: 18, get_clock
Sent 90 127.041952 127.041952 6: seq: 19, get_clock
Sent 91 128.026184 128.026184 6: seq: 1a, get_clock
Sent 92 129.010448 129.010448 6: seq: 1b, get_clock
Sent 93 129.994735 129.994735 6: seq: 1c, get_clock
Sent 94 130.979101 130.979101 6: seq: 1d, get_clock
Sent 95 131.963293 131.963293 6: seq: 1e, get_clock
Sent 96 132.948530 132.948530 6: seq: 1f, get_clock
Sent 97 133.933301 133.933301 6: seq: 10, get_clock
Sent 98 134.918235 134.918235 6: seq: 11, get_clock
Sent 99 135.707877 135.707877 6: seq: 12, emergency_stop
Dumping receive queue 100 messages
Receive: 0 75.945203 75.945103 49: seq: 17, identify_response offset=1520 data=b'*\xf1[\\BY\x15vDK\xa3\r1\x82\x9c8>\xe0Zk\xc77\xf8\xc0\x97wm\xafQ\x17\xc5\n\xd5\xb6N\xc2\x9f:\x01['
Receive: 1 75.945518 75.945417 49: seq: 18, identify_response offset=1560 data=b'\xe2c\xbc\x8d\x1di\xb6\n\x9f\t\x8cB9\xfeT\xd4\xf0\xceR\xfc\xc9\x80i,=]\xbe\xb9\xca\xaf/\x7fC,\x83\xf9\xe5\xea\xc7\x9f'
Receive: 2 75.945831 75.945730 49: seq: 19, identify_response offset=1600 data=b'\xaf~\xc8\xbf\xfd\xf0\xf6\x17\\(\xfd\x9d-\xae\xaf>..\x16\xb5h\xc6\xa7\xc5\xd9\xe2\xfd\xd5\xa5:+F\x0c\x1c\xea\xfd\xaf\xd7\xd4\x8c'
Receive: 3 75.946227 75.946123 49: seq: 1a, identify_response offset=1640 data=b'\xc2\x0c\xf3\xfa\xcd\xed\xe5\xedM~\xf3\xf1\xfa\xe6\x97\xfc\x9b\xcb\x9b\xb7\x88S\xd3O\x88TG\xc0\xce\xea\xbe\xa7\n_\xfe\xcd\x1a\xdb\x80\xb5'
Receive: 4 75.946546 75.946444 49: seq: 1b, identify_response offset=1680 data=b'\x14h\x02_Z\\\xac>\x11\xf8\x02&M;_-.\xfe\xb5:\x0b\x92\xdf\x814\xb9\x85#\xc3\x8f\xefn\xc27\xbf\x82\xdc\x19~F'
Receive: 5 75.946860 75.946760 49: seq: 1c, identify_response offset=1720 data=b'o\xbe\x87\xa1\x80\x0f|V\xd5\xd8\x14\x86\xc0\x01\x94\xca\xeb\xdf\x01\xdfv\xa2\xa5\x11\xc3\xb5i\xe3\x88\xab\xaf^\xa2\x04\x96\x02\xfd3Zh'
Receive: 6 75.947176 75.947074 49: seq: 1d, identify_response offset=1760 data=b'i\t$\xb4)-\xb2\xb45@\xca)-\xb6\xb4 \x00\xc46%&\x8e\x18\xc7smRG\xcc\xc2\xb9:\x99Su\x15\xcc\xf5Y;'
Receive: 7 75.947491 75.947390 49: seq: 1e, identify_response offset=1800 data=b"b\xb42\nA\xec\xa2\xd5\xc3\x07\x92\xd2$\x81`\x11\xa4\x8e\x14x$P\xd5'\x85\x1e\t<\xc0'E\x1ei\x1dOH\xb1#\xa5\xe0"
Receive: 8 75.947805 75.947705 49: seq: 1f, identify_response offset=1840 data=b'h>)\xf1H\xc1T\x8d\xd4#ES52\x8f\x14+5>M\xe2\xacv\x95"\x88\xa2HyJ!\x93U\x9cU\xca\xeb\x86\x9a\''
Receive: 9 75.948158 75.948040 49: seq: 10, identify_response offset=1880 data=b'\xab \xbc\x03o\xd5R\xda\xf5\xe0\xb3\xe2\x0f+\xe3~8\x1fu\x05\xaa\x0b|\xdb\xef\x0cUg\x12\x84~g\xa4:3c\x1a\xea\x8cU'
Receive: 10 75.948484 75.948383 49: seq: 11, identify_response offset=1920 data=b'g\xb0\nc\xbf7\xa1\xdep=\x99*\xa5^\xbb%\xd4\x9bQ/DL\xb3V\xc0-\x02#N\x0f7\xe0\\T\xfa\x8c3\x15\x0b\xb6'
Receive: 11 75.948802 75.948701 49: seq: 12, identify_response offset=1960 data=b'\x84r\xa9(xY\xd7L\x1fe\x93\xe3$;\x8cr`\xfb\xe2\x81\xe3}\x1e\xd1,\xf7s\x18\x85\xde\xcbZ\x95n\x99\xb9VV\x94\xa0'
Receive: 12 75.949119 75.949017 49: seq: 13, identify_response offset=2000 data=b'\xaf\x8a\x865\xed\xc0 (2L,\x0cv\x82\x84\x99\x12f\x8f{\x01\xdf\x14\xa3$\xeb \xca\x82\x8a\x84\x00@\xf6\xf3\x013.\x93b'
Receive: 13 75.949432 75.949331 49: seq: 14, identify_response offset=2040 data=b'\x07\xa3\xc2\xec\xc5\xc0\x84d\x85\x9e\x8b\xca(\x91~\xf7\xfe\xdd\xcf\x0c\x0f.\x03g\x16\xc0\x86v'
Receive: 18 75.951026 75.950925 49: seq: 19, identify_response offset=2240 data=b'\xd8\x02\x98\xac\x08\xcd\x7f\xff\x1b\xdet\xb0\x8c\xfc\x95\xf6\xd1\xc9zY\xb0\x8c\xe9U\xe3]x\xc5~\xba\xbc\xfa\x81\xael\xd8\x82\x1c\xf4\xe1'
Receive: 19 75.951401 75.951238 49: seq: 1a, identify_response offset=2280 data=b'\xd6\xf4\xad\xfc\xbe\x0fo/\xdfh\x02\xa6V$\xdcR\x16\xa7\xac\xfd\x8e\x10\xb9\xb7\x18\xac\xc73Q\x9d!\xce\xd5\x9b\xd5\x82\x03\xab\xb7\x1d'
Receive: 20 75.952471 75.952340 49: seq: 1b, identify_response offset=2320 data=b'\xbdt\xba\r\xbd"\xaa\x8e\x16J\x82\x03\x0c\xb0 \xf6\xf9W\x9f\xd3\xed\xdd\x08\x99\xe7\n\xf7\xeaB\xb8\x9ap\x9e\xe1r\xf6\xf3\xfb\x80\r'
Receive: 21 75.952824 75.952718 49: seq: 1c, identify_response offset=2360 data=b'\x1d\x1a\x0e,\x80r\xaa\xdb\x19\xe2\xa1\x85\xe3\xac}\x9aaq\x19A\x80#\xdbR\xb4->S\xdd\xe5\x88\xae+\x08v\xfe\xc83\x15\x1c'
Receive: 22 75.953155 75.953051 49: seq: 1d, identify_response offset=2400 data=b'CF\xc15\xf0\x16d\n\xd2v\xebz\x02"T\xd1\x9bs\x19\x92\xa7:\x96|\rVA\x80\xe3\xf5\xeb\xeb\x9d\xf2\x1d\x9a9\xf6\x04\''
Receive: 23 75.953479 75.953377 49: seq: 1e, identify_response offset=2440 data=b"\xb73\x9f\x07\xe6\xbd.\x9e\xd0\x81\xd6\xc6\xde\x84\x89\xaf\xb9\x94\x05x\x14oJ@\xb7&* AH\xc9a\xcar\xcf\xab\xb1F'\x07"
Receive: 24 75.953799 75.953697 49: seq: 1f, identify_response offset=2480 data=b'a\xbcT0\x8d\xb3\x94G\xf2\x07\x8e\x1b\x85\xf7\x89\x97\x05\xf6E_\xa9\xb0\xa8\xb9\xb1l\xfc2\xb7\xb1\x8bf\xc6B\xff5n\xa5\xba\x89'
Receive: 25 75.954216 75.954111 49: seq: 10, identify_response offset=2520 data=b'1\xf8\xea\xb7u\xfbHw\xbf\x0f\\\x0f\x00C\xe1\xa9\xed\xd51\x87\x10\xde\x15\x18\xc8\xf0\xa1\xeb\xc62\x1c\xe9\xcd\x1e\x05$\x03\xfeTr'
Receive: 26 75.954543 75.954439 49: seq: 11, identify_response offset=2560 data=b'\xa0\xfaEy\x82\xd2Nr\xa2\xd2+RXy\xf2\xa4\xcc\x8a_\x91\xc07\xad\x1b>\xe8=Qj#\x878\x8c\x07\xd3g\xce\x02,\xf7'
Receive: 27 75.954864 75.954762 49: seq: 12, identify_response offset=2600 data=b'\xc6\x06\x13|}\x84\xc1T\xb0W1\xd4\x7f\x88\xbc\xd1\xd1\x7fh[\xb6-\x94M\xc8\x1eX\x15\xbd\xf5]D\x07[\xf5@Au\xbd['
Receive: 28 75.955184 75.955081 49: seq: 13, identify_response offset=2640 data=b'eE\x94\x84X(\xb9\xaa\xf2\xdeB\x0b|\xff\x19\x0b\x90:`Iz\x18\xb4\x14\xf4XK\xc1\x8b\xfc\xc7\xa6\xb8\xc3\x14\xd8jGV\xd6'
Receive: 29 75.955498 75.955397 49: seq: 14, identify_response offset=2680 data=b' \x0e\xaa\x819\x06\xf0\x04\xd8X\x1c\x01P\xdaPS\x9d\xd4\x91U\xc4\x99\x07Lz\xb7\x981\x15U\xe9\xa6\xc8\x8e\xc9:\x01\xd9\xf4o'
Receive: 30 75.955816 75.955715 49: seq: 15, identify_response offset=2720 data=b'x\x93\xe4\x88\xd7\xad\x94^_\xe7d_#\xf0^N7\xd6\x19\x17:\xda\x11[p\xc4\xe6lG\x95WG\xc6\xa4~\xf3\xfe\x9d\xbax'
Receive: 31 75.956163 75.956059 49: seq: 16, identify_response offset=2760 data=b'R\x95\xf9\x98&;\x8eP$\r\xe7\xc4\xa6m\x96w\x98\xcf\xd4\xe1\x9aM\x13\xf9\xdc:\xc2\x19\xb3\x98\x804\xd9$*\x05\xe3\xd0xG'
Receive: 32 75.956488 75.956387 49: seq: 17, identify_response offset=2800 data=b'\xc1G\x17\xf5z\x0fW\x91\xb1\xb9\x07\x07\x02\x8cS\xd1\xe3\xae\xd7/\x1d\x01\x9c\x85"\x97\xce\xce\x18\x98\xe1\xbe\'Y)\x99\xba\xaa\xe0\x9b'
Receive: 33 75.956809 75.956707 49: seq: 18, identify_response offset=2840 data=b"'\xde\x8b0`)\xf3\x8f\x8d\x1c;\xbc#\xa2<=\xf9\x1b*E;z7\xb3\xbd\xb8\xbe\xa9L6}U\x03#\xd4\x00\xa9\x1e@%"
Receive: 34 75.957129 75.957029 49: seq: 19, identify_response offset=2880 data=b'\xb5*BJ\xf6\xe0\xc0\x92\xd0\xce5\x9b\xcd\x01;\xa2~\x9f`1\x99\xfe\xd5BE\xef+\x12\xeb\xe0\x18\xe5)\xfe\x94@V\x93\xdb\x8b'
Receive: 35 75.957445 75.957344 49: seq: 1a, identify_response offset=2920 data=b'\xb5J0\xeaD\xd5E\x8fX%:}e\xc5cLQ\x1c\xdf\xd14t\xa3\xa8\x87\x17u\x00\xb9GoM\x88r\xe1\xfe\x19\x05\xeb$'
Receive: 36 75.957762 75.957661 49: seq: 1b, identify_response offset=2960 data=b'Q\xb0^7R\x85\xeb\xa9\x91&*&@#M3\xf8\x8e>\xa9Kd\t\xdb\x00\xf2\x0b\xfc\xcd\xc6w\xef\x7f|\x88\x16\xaal\x05P'
Receive: 37 75.958088 75.957984 49: seq: 1c, identify_response offset=3000 data=b'Ir\xe9.\x8e\xb9h&\xc5O\x15\xa2\xf3S\xc5\xb2%\x86L\xf3#\x8b\x89H\xe1\x95\x96\x99\xa2P=c\x89NA\x88\xcb\x95\x0f\x96'
Receive: 38 75.958408 75.958307 49: seq: 1d, identify_response offset=3040 data=b'\xee\xe1\x9e\xe1MW}\xa9\n\x83z\xbd\xc1>\xb3e\xaal\x03\xf9 \xb7U8\x14WO\xa9\xaaf\xfd\x9a\xe2ZD\x7f\xe4\xde\xfc\x88'
Receive: 39 75.958719 75.958619 49: seq: 1e, identify_response offset=3080 data=b'\xe9\xcd\x9b\x99\x84\xb0h\x9f\xc0\x96\x08.t5\xdb\xd0^3\x8a\xa0\xb0J\xb2\x99{\xae\x9ah\xb5o\x0fp<\x8f\xc7\xf0_\xc3p\xea'
Receive: 40 75.959035 75.958934 49: seq: 1f, identify_response offset=3120 data=b'\xc0\xbd\x1c\xe5f\x9b\xbcr\xb1j\x1b\xabf\xeeu\xc6\xe3\xb5\xcf4TP:G^|\xc7q\xf6d\xf3K\x946)\xa2\xc8\x17\xab\xe1'
Receive: 41 75.959350 75.959250 49: seq: 10, identify_response offset=3160 data=b'\xde\n\xcc\xa3\x8do\xcc\x95\xf7\x143\xb5\x99\x1c\xcbR\xbd7\xe1\xfa\x10\x98\x81\x9e\xfe\xdb\xe5\x12\x93\x15\x05\x0b\xb8\x8f\xd6\xf7\x93\xa2\x98D'
Receive: 42 75.959665 75.959564 49: seq: 11, identify_response offset=3200 data=b'X\xd7\x94|\xf6\x98\xb3\\OE&urW\xe2\xd5\x95lSy\xa2J\xa9?\xe2\xdd\xb8\xddr\xc8\xaf\xf4\xd0\x017.\x08\x17\xb9A'
Receive: 43 75.959978 75.959878 49: seq: 12, identify_response offset=3240 data=b'\x1eR\x9b\x05\x8bm.\x1f\x9b\x87\x99\xd3&D\xbc}\\\xf6<\xdaI\xbf\x90>\xd9\xd2`Zg\xfcK\x17P\xf5D\x88=\n\xa0/'
Receive: 44 75.960327 75.960224 49: seq: 13, identify_response offset=3280 data=b'\xf1j\x80\x8aI\xe7\xf6r<\xe8\x7f\xf2\x0f\xed\xddkW<\x9cU\x16\xe9\xd9L S8\x8bB\x7f\xe3\x1c\x8c\xe6\x1c\xa8\x8d\x0e]\xc1'
Receive: 45 75.960674 75.960543 49: seq: 14, identify_response offset=3320 data=b'\xf1x\x11Xj\xa4\x05$~\x11\xd19[Y\xd8\x8a\xe6\xe9gB?\x90\xac0\xcc\xaa;1\xfdLb\x9cP3\x08\x83\xfaGo\x10'
Receive: 46 75.961012 75.960895 36: seq: 15, identify_response offset=3360 data=b'\x06\x1fV\xe7Ax\xbeZF\x9bt\xb9\xbb\xcb\xc2(\xaa\x82`\xb3\xf8\xf4\x1fa0\x01\xa5'
Receive: 47 75.961329 75.961229 9: seq: 16, identify_response offset=3387 data=b''
Receive: 48 75.987838 75.987616 12: seq: 17, uptime high=0 clock=2849387427
Receive: 49 76.038689 76.038571 11: seq: 18, clock clock=2851931422
Receive: 50 76.089455 76.089296 11: seq: 19, clock clock=2854469257
Receive: 51 76.140282 76.140122 11: seq: 1a, clock clock=2857010614
Receive: 52 76.191076 76.190916 11: seq: 1b, clock clock=2859550280
Receive: 53 76.241830 76.241685 11: seq: 1c, clock clock=2862088187
Receive: 54 76.292709 76.292523 11: seq: 1d, clock clock=2864630452
Receive: 55 76.343486 76.343333 11: seq: 1e, clock clock=2867170880
Receive: 56 76.394300 76.394139 11: seq: 1f, clock clock=2869711487
Receive: 57 76.402556 76.402424 11: seq: 10, clock clock=2870124318
Receive: 58 77.387695 77.387458 11: seq: 11, clock clock=2919380398
Receive: 59 78.371952 78.371796 11: seq: 12, clock clock=2968595659
Receive: 60 78.440422 78.440238 10: seq: 13, config is_config=0 crc=0 is_shutdown=0 move_count=0
Receive: 61 78.442701 78.442594 15: seq: 19, config is_config=1 crc=2738712656 is_shutdown=0 move_count=1024
Receive: 62 79.356956 79.356699 11: seq: 1a, clock clock=3017842300
Receive: 63 79.700154 79.356699 14: seq: 1a, stats count=157 sum=181720 sumsq=1211925
Receive: 64 80.341762 80.341593 11: seq: 1b, clock clock=3067084009
Receive: 65 81.325996 81.325808 11: seq: 1c, clock clock=3116295649
Receive: 66 84.702827 81.325808 13: seq: 1c, stats count=52 sum=20783 sumsq=51908
Receive: 67 89.800362 81.325808 13: seq: 1c, stats count=51 sum=17482 sumsq=28770
Receive: 68 94.800693 81.325808 13: seq: 1c, stats count=50 sum=28286 sumsq=215879
Receive: 69 99.900535 81.325808 13: seq: 1c, stats count=51 sum=28569 sumsq=289652
Receive: 70 104.900805 81.325808 13: seq: 1c, stats count=50 sum=32034 sumsq=155287
Receive: 71 110.000560 81.325808 13: seq: 1c, stats count=51 sum=31356 sumsq=154143
Receive: 72 114.248959 114.248581 11: seq: 1d, clock clock=467452946
Receive: 73 115.000645 114.248581 13: seq: 1d, stats count=51 sum=23011 sumsq=115557
Receive: 74 115.230485 115.230250 11: seq: 1e, clock clock=516528861
Receive: 75 116.214561 116.214413 11: seq: 1f, clock clock=565736010
Receive: 76 117.198827 117.198719 11: seq: 10, clock clock=614949725
Receive: 77 118.183094 118.182995 11: seq: 11, clock clock=664162849
Receive: 78 119.167384 119.167254 11: seq: 12, clock clock=713376350
Receive: 79 120.000756 119.167254 13: seq: 12, stats count=55 sum=30699 sumsq=170593
Receive: 80 120.151964 120.151644 11: seq: 13, clock clock=762598281
Receive: 81 121.135958 121.135719 11: seq: 14, clock clock=811802085
Receive: 82 122.120244 122.120038 11: seq: 15, clock clock=861016393
Receive: 83 123.104261 123.104162 11: seq: 16, clock clock=910220626
Receive: 84 124.088952 124.088382 11: seq: 17, clock clock=959435010
Receive: 85 125.072916 125.072792 11: seq: 18, clock clock=1008652921
Receive: 86 125.072936 125.072792 13: seq: 18, stats count=56 sum=41806 sumsq=389102
Receive: 87 126.057019 126.056713 11: seq: 19, clock clock=1057853795
Receive: 88 127.042414 127.041952 11: seq: 1a, clock clock=1107120519
Receive: 89 128.026562 128.026184 11: seq: 1b, clock clock=1156325475
Receive: 90 129.010815 129.010448 11: seq: 1c, clock clock=1205538504
Receive: 91 129.995109 129.994735 11: seq: 1d, clock clock=1254758271
Receive: 92 130.100768 129.994735 13: seq: 1d, stats count=56 sum=56046 sumsq=679094
Receive: 93 130.979479 130.979101 11: seq: 1e, clock clock=1303971620
Receive: 94 131.963552 131.963293 11: seq: 1f, clock clock=1353181057
Receive: 95 132.948736 132.948530 11: seq: 10, clock clock=1402441294
Receive: 96 133.933506 133.933301 11: seq: 11, clock clock=1451679629
Receive: 97 134.918498 134.918235 11: seq: 12, clock clock=1500929236
Receive: 98 135.100813 134.918235 13: seq: 12, stats count=55 sum=55037 sumsq=405556
Receive: 99 135.708174 135.707877 12: seq: 13, shutdown clock=1540409016 static_string_id=Command request
gcode state: absolute_coord=True absolute_extrude=True base_position=[0.0, 0.0, 0.0, 0.0] last_position=[0.0, 0.0, 15.0, 0.0] homing_position=[0.0, 0.0, 0.0, 0.0] speed_factor=0.016666666666666666 extrude_factor=1.0 speed=25.0
MCU 'toolboard_t0' shutdown: Command request
clocksync state: mcu_freq=64000000 last_clock=9272463881 clock_est=(102.760 7214315263 63999928.623) min_half_rtt=0.000074 min_rtt_time=119.167 time_avg=102.760(614.483) clock_avg=7214315263.882(39326877706.941) pred_variance=1253173736.927 clock_adj=(-18.906 70348463.750)
Dumping serial stats: bytes_write=1667 bytes_read=10834 bytes_retransmit=9 bytes_invalid=0 send_seq=187 receive_seq=187 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 76.652771 76.652771 9: seq: 17, identify offset=2840 count=40
Sent 1 76.653700 76.653700 9: seq: 18, identify offset=2880 count=40
Sent 2 76.654599 76.654599 9: seq: 19, identify offset=2920 count=40
Sent 3 76.655314 76.655314 9: seq: 1a, identify offset=2960 count=40
Sent 4 76.656088 76.656088 9: seq: 1b, identify offset=3000 count=40
Sent 5 76.656811 76.656811 9: seq: 1c, identify offset=3040 count=40
Sent 6 76.657549 76.657549 9: seq: 1d, identify offset=3080 count=40
Sent 7 76.658362 76.658362 9: seq: 1e, identify offset=3120 count=40
Sent 8 76.670858 76.670858 6: seq: 1f, get_uptime
Sent 9 76.722277 76.722277 6: seq: 10, get_clock
Sent 10 76.773487 76.773487 6: seq: 11, get_clock
Sent 11 76.824818 76.824818 6: seq: 12, get_clock
Sent 12 76.876125 76.876125 6: seq: 13, get_clock
Sent 13 76.927785 76.927785 6: seq: 14, get_clock
Sent 14 76.979219 76.979219 6: seq: 15, get_clock
Sent 15 77.030566 77.030566 6: seq: 16, get_clock
Sent 16 77.081713 77.081713 6: seq: 17, get_clock
Sent 17 77.094542 77.094542 6: seq: 18, get_clock
Sent 18 77.790844 77.790844 12: seq: 19, debug_read order=1 addr=536835496
Sent 19 77.791300 77.791300 12: seq: 1a, debug_read order=1 addr=536835530
Sent 20 78.079260 78.079260 6: seq: 1b, get_clock
Sent 21 78.443333 78.443333 6: seq: 1c, get_config
Sent 22 78.445585 78.445585 7: seq: 1d, allocate_oids count=13
Sent 23 78.445923 78.445923 9: seq: 1e, config_spi oid=0 pin=PB12 cs_active_high=0
Sent 24 78.446068 78.446068 8: seq: 1f, config_adxl345 oid=1 spi_oid=0
Sent 25 78.446377 78.446377 9: seq: 10, config_analog_in oid=6 pin=ADC_TEMPERATURE
Sent 26 78.446620 78.446620 15: seq: 11, spi_set_software_bus oid=0 miso_pin=PB2 mosi_pin=PB11 sclk_pin=PB10 mode=3 rate=5000000
Sent 27 78.446797 78.446797 11: seq: 12, config_digital_out oid=7 pin=PA1 value=0 default_value=1 max_duration=0
Sent 28 78.446957 78.446957 10: seq: 13, set_digital_out_pwm_cycle oid=7 cycle_ticks=640000
Sent 29 78.447170 78.447170 12: seq: 14, config_tmcuart oid=2 rx_pin=PA15 pull_up=0 tx_pin=PA15 bit_time=1600
Sent 30 78.447296 78.447296 11: seq: 15, config_digital_out oid=8 pin=PA0 value=1 default_value=1 max_duration=0
Sent 31 78.447522 78.447522 9: seq: 16, set_digital_out_pwm_cycle oid=8 cycle_ticks=2560
Sent 32 78.447663 78.447663 8: seq: 17, config_buttons oid=9 button_count=2
Sent 33 78.447862 78.447862 9: seq: 18, config_endstop oid=3 pin=PB6 pull_up=0
Sent 34 78.448056 78.448056 7: seq: 19, config_trsync oid=4
Sent 35 78.448291 78.448291 8: seq: 1a, config_analog_in oid=10 pin=PA3
Sent 36 78.448600 78.448600 15: seq: 1b, config_digital_out oid=11 pin=PB13 value=0 default_value=0 max_duration=320000000
Sent 37 78.448848 78.448848 11: seq: 1c, set_digital_out_pwm_cycle oid=11 cycle_ticks=6400000
Sent 38 78.449105 78.449105 11: seq: 1d, config_stepper oid=5 step_pin=PD0 dir_pin=PD1 invert_step=4294967295 step_pulse_ticks=0
Sent 39 78.449347 78.449347 11: seq: 1e, config_digital_out oid=12 pin=PD2 value=1 default_value=1 max_duration=0
Sent 40 78.449469 78.449469 11: seq: 1f, finalize_config crc=3175291417
Sent 41 78.449674 78.449674 25: seq: 10, query_analog_in oid=6 clock=1430720314 sample_ticks=64000 sample_count=8 rest_ticks=19200000 min_value=89 max_value=65535 range_check_count=4
Sent 42 78.449794 78.449794 13: seq: 11, queue_digital_out oid=7 clock=1375948778 on_ticks=0
Sent 43 78.449911 78.449911 14: seq: 12, queue_digital_out oid=8 clock=1375954957 on_ticks=2560
Sent 44 78.450005 78.450005 10: seq: 13, buttons_add oid=9 pos=0 pin=PB4 pull_up=1
Sent 45 78.450125 78.450125 10: seq: 14, buttons_add oid=9 pos=1 pin=PB3 pull_up=1
Sent 46 78.450411 78.450411 17: seq: 15, buttons_query oid=9 clock=1432640314 rest_ticks=128000 retransmit_count=50 invert=2
Sent 47 78.450575 78.450575 26: seq: 16, query_analog_in oid=10 clock=1433280314 sample_ticks=64000 sample_count=8 rest_ticks=19200000 min_value=10237 max_value=16734 range_check_count=4
Sent 48 78.450696 78.450696 13: seq: 17, queue_digital_out oid=11 clock=1375972488 on_ticks=0
Sent 49 78.450987 78.450987 6: seq: 18, get_config
Sent 50 79.063555 79.063555 6: seq: 19, get_clock
Sent 51 79.136639 79.136639 14: seq: 1a, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 52 79.141060 79.141060 19: seq: 1b, tmcuart_send oid=2 write=b'\xea\x03\x080\x80\x00\n\x08\xb8\x87' read=0
Sent 53 79.144235 79.144235 14: seq: 1c, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 54 79.148549 79.148549 19: seq: 1d, tmcuart_send oid=2 write=b'\xea\x03h0\x80\x00\x12\x08 \xda' read=0
Sent 55 79.151449 79.151449 14: seq: 1e, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 56 79.156221 79.156221 19: seq: 1f, tmcuart_send oid=2 write=b'\xea\x03\x88=\x91\x04\x1a\x88\xae\xe7' read=0
Sent 57 79.159108 79.159108 14: seq: 10, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 58 79.163969 79.163969 19: seq: 11, tmcuart_send oid=2 write=b'\xea\x03\x082\x80\x10\xb2\xc8\xa2\xa4' read=0
Sent 59 79.166948 79.166948 14: seq: 12, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 60 79.171553 79.171553 19: seq: 13, tmcuart_send oid=2 write=b'\xea\x03h2\x80\x1e\xfa\xef?\xdf' read=0
Sent 61 79.174524 79.174524 14: seq: 14, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 62 79.178939 79.178939 19: seq: 15, tmcuart_send oid=2 write=b'\xea\x03\x882\x80\x00\x02\x08\xa0\xe6' read=0
Sent 63 79.184086 79.184086 14: seq: 16, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 64 79.188637 79.188637 19: seq: 17, tmcuart_send oid=2 write=b'\xea\x03H8\x80\x00\x02\x08 \xde' read=0
Sent 65 79.191325 79.191325 14: seq: 18, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 66 79.195787 79.195787 19: seq: 19, tmcuart_send oid=2 write=b'\xea\x03\x08>\xe4\x1ar\x88\xa4\x85' read=0
Sent 67 79.198824 79.198824 14: seq: 1a, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 68 79.203471 79.203471 19: seq: 1b, tmcuart_send oid=2 write=b'\xea\x03(2\x80\x00\x02\x88"\xf3' read=0
Sent 69 79.206187 79.206187 14: seq: 1c, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 70 79.210639 79.210639 19: seq: 1d, tmcuart_send oid=2 write=b'\xea\x03\x088\x80\x00\x02\x08 \xba' read=0
Sent 71 79.213394 79.213394 14: seq: 1e, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 72 79.532830 79.532830 8: seq: 1f, buttons_ack oid=9 count=1
Sent 73 79.592077 79.592077 7: seq: 10, stepper_get_position oid=5
Sent 74 79.592962 79.592962 14: seq: 11, tmcuart_send oid=2 write=b'\xea\x03H-\xd5' read=10
Sent 75 80.048364 80.048364 6: seq: 12, get_clock
Sent 76 81.032685 81.032685 6: seq: 13, get_clock
Sent 77 114.248775 114.248775 6: seq: 14, get_clock
Sent 78 115.230328 115.230328 6: seq: 15, get_clock
Sent 79 116.214451 116.214451 6: seq: 16, get_clock
Sent 80 117.198732 117.198732 6: seq: 17, get_clock
Sent 81 118.183420 118.183420 6: seq: 18, get_clock
Sent 82 119.167290 119.167290 6: seq: 19, get_clock
Sent 83 120.151831 120.151831 6: seq: 1a, get_clock
Sent 84 121.137015 121.137015 6: seq: 1b, get_clock
Sent 85 122.120047 122.120047 6: seq: 1c, get_clock
Sent 86 123.104181 123.104181 6: seq: 1d, get_clock
Sent 87 124.088400 124.088400 6: seq: 1e, get_clock
Sent 88 125.072810 125.072810 6: seq: 1f, get_clock
Sent 89 126.056791 126.056791 6: seq: 10, get_clock
Sent 90 127.042160 127.042160 6: seq: 11, get_clock
Sent 91 128.026405 128.026405 6: seq: 12, get_clock
Sent 92 129.010664 129.010664 6: seq: 13, get_clock
Sent 93 129.994966 129.994966 6: seq: 14, get_clock
Sent 94 130.979325 130.979325 6: seq: 15, get_clock
Sent 95 131.963640 131.963640 6: seq: 16, get_clock
Sent 96 132.949448 132.949448 6: seq: 17, get_clock
Sent 97 133.934167 133.934167 6: seq: 18, get_clock
Sent 98 134.918598 134.918598 6: seq: 19, get_clock
Sent 99 135.708066 135.708066 6: seq: 1a, emergency_stop
Dumping receive queue 100 messages
Receive: 0 123.104497 123.104181 11: seq: 1e, clock clock=4221375632
Receive: 1 123.307507 123.104181 13: seq: 1e, analog_in_state oid=6 next_clock=4253120314 value=7601
Receive: 2 123.347525 123.104181 13: seq: 1e, analog_in_state oid=10 next_clock=4255680314 value=11034
Receive: 3 123.607522 123.104181 13: seq: 1e, analog_in_state oid=6 next_clock=4272320314 value=7594
Receive: 4 123.647495 123.104181 13: seq: 1e, analog_in_state oid=10 next_clock=4274880314 value=11036
Receive: 5 123.907514 123.104181 13: seq: 1e, analog_in_state oid=6 next_clock=4291520314 value=7595
Receive: 6 123.947498 123.104181 13: seq: 1e, analog_in_state oid=10 next_clock=4294080314 value=11033
Receive: 7 124.088952 124.088400 10: seq: 1f, clock clock=4284363504
Receive: 8 124.207498 124.088400 13: seq: 1f, analog_in_state oid=6 next_clock=15753018 value=7592
Receive: 9 124.247494 124.088400 13: seq: 1f, analog_in_state oid=10 next_clock=18313018 value=11032
Receive: 10 124.507535 124.088400 13: seq: 1f, analog_in_state oid=6 next_clock=34953018 value=7598
Receive: 11 124.547517 124.088400 13: seq: 1f, analog_in_state oid=10 next_clock=37513018 value=11032
Receive: 12 124.807551 124.088400 13: seq: 1f, analog_in_state oid=6 next_clock=54153018 value=7595
Receive: 13 124.847557 124.088400 13: seq: 1f, analog_in_state oid=10 next_clock=56713018 value=11033
Receive: 14 125.072977 125.072810 10: seq: 10, clock clock=52398406
Receive: 15 125.107526 125.072810 13: seq: 10, analog_in_state oid=6 next_clock=73353018 value=7599
Receive: 16 125.147518 125.072810 13: seq: 10, analog_in_state oid=10 next_clock=75913018 value=11037
Receive: 17 125.407523 125.072810 13: seq: 10, analog_in_state oid=6 next_clock=92553018 value=7601
Receive: 18 125.447510 125.072810 13: seq: 10, analog_in_state oid=10 next_clock=95113018 value=11035
Receive: 19 125.707556 125.072810 13: seq: 10, analog_in_state oid=6 next_clock=111753018 value=7597
Receive: 20 125.747531 125.072810 13: seq: 10, analog_in_state oid=10 next_clock=114313018 value=11035
Receive: 21 125.936648 125.072810 14: seq: 10, stats count=170 sum=158910 sumsq=821352
Receive: 22 126.007539 125.072810 13: seq: 10, analog_in_state oid=6 next_clock=130953018 value=7599
Receive: 23 126.047525 125.072810 13: seq: 10, analog_in_state oid=10 next_clock=133513018 value=11039
Receive: 24 126.057017 126.056791 10: seq: 11, clock clock=115372382
Receive: 25 126.307515 126.056791 13: seq: 11, analog_in_state oid=6 next_clock=150153018 value=7597
Receive: 26 126.347552 126.056791 13: seq: 11, analog_in_state oid=10 next_clock=152713018 value=11039
Receive: 27 126.607602 126.056791 13: seq: 11, analog_in_state oid=6 next_clock=169353018 value=7597
Receive: 28 126.647585 126.056791 13: seq: 11, analog_in_state oid=10 next_clock=171913018 value=11035
Receive: 29 126.907548 126.056791 13: seq: 11, analog_in_state oid=6 next_clock=188553018 value=7593
Receive: 30 126.947557 126.056791 13: seq: 11, analog_in_state oid=10 next_clock=191113018 value=11036
Receive: 31 127.042467 127.042160 10: seq: 12, clock clock=178437441
Receive: 32 127.207588 127.042160 14: seq: 12, analog_in_state oid=6 next_clock=207753018 value=7598
Receive: 33 127.247606 127.042160 14: seq: 12, analog_in_state oid=10 next_clock=210313018 value=11033
Receive: 34 127.507617 127.042160 14: seq: 12, analog_in_state oid=6 next_clock=226953018 value=7600
Receive: 35 127.547602 127.042160 14: seq: 12, analog_in_state oid=10 next_clock=229513018 value=11036
Receive: 36 127.807725 127.042160 14: seq: 12, analog_in_state oid=6 next_clock=246153018 value=7596
Receive: 37 127.848204 127.042160 14: seq: 12, analog_in_state oid=10 next_clock=248713018 value=11034
Receive: 38 128.026704 128.026405 11: seq: 13, clock clock=241429268
Receive: 39 128.108047 128.026405 14: seq: 13, analog_in_state oid=6 next_clock=265353018 value=7594
Receive: 40 128.147928 128.026405 14: seq: 13, analog_in_state oid=10 next_clock=267913018 value=11034
Receive: 41 128.407923 128.026405 14: seq: 13, analog_in_state oid=6 next_clock=284553018 value=7598
Receive: 42 128.447948 128.026405 14: seq: 13, analog_in_state oid=10 next_clock=287113018 value=11033
Receive: 43 128.707918 128.026405 14: seq: 13, analog_in_state oid=6 next_clock=303753018 value=7598
Receive: 44 128.747922 128.026405 14: seq: 13, analog_in_state oid=10 next_clock=306313018 value=11039
Receive: 45 129.007991 128.026405 14: seq: 13, analog_in_state oid=6 next_clock=322953018 value=7595
Receive: 46 129.010929 129.010664 11: seq: 14, clock clock=304421777
Receive: 47 129.047616 129.010664 14: seq: 14, analog_in_state oid=10 next_clock=325513018 value=11033
Receive: 48 129.307613 129.010664 14: seq: 14, analog_in_state oid=6 next_clock=342153018 value=7597
Receive: 49 129.347647 129.010664 14: seq: 14, analog_in_state oid=10 next_clock=344713018 value=11034
Receive: 50 129.607641 129.010664 14: seq: 14, analog_in_state oid=6 next_clock=361353018 value=7598
Receive: 51 129.647622 129.010664 14: seq: 14, analog_in_state oid=10 next_clock=363913018 value=11037
Receive: 52 129.907601 129.010664 14: seq: 14, analog_in_state oid=6 next_clock=380553018 value=7598
Receive: 53 129.947578 129.010664 14: seq: 14, analog_in_state oid=10 next_clock=383113018 value=11032
Receive: 54 129.995228 129.994966 11: seq: 15, clock clock=367417097
Receive: 55 130.207603 129.994966 14: seq: 15, analog_in_state oid=6 next_clock=399753018 value=7599
Receive: 56 130.247574 129.994966 14: seq: 15, analog_in_state oid=10 next_clock=402313018 value=11035
Receive: 57 130.507625 129.994966 14: seq: 15, analog_in_state oid=6 next_clock=418953018 value=7602
Receive: 58 130.547612 129.994966 14: seq: 15, analog_in_state oid=10 next_clock=421513018 value=11031
Receive: 59 130.807765 129.994966 14: seq: 15, analog_in_state oid=6 next_clock=438153018 value=7599
Receive: 60 130.847825 129.994966 14: seq: 15, analog_in_state oid=10 next_clock=440713018 value=11040
Receive: 61 130.979666 130.979325 11: seq: 16, clock clock=430415997
Receive: 62 130.979696 130.979325 14: seq: 16, stats count=170 sum=160778 sumsq=842496
Receive: 63 131.107753 130.979325 14: seq: 16, analog_in_state oid=6 next_clock=457353018 value=7599
Receive: 64 131.147681 130.979325 14: seq: 16, analog_in_state oid=10 next_clock=459913018 value=11037
Receive: 65 131.407723 130.979325 14: seq: 16, analog_in_state oid=6 next_clock=476553018 value=7596
Receive: 66 131.447682 130.979325 14: seq: 16, analog_in_state oid=10 next_clock=479113018 value=11032
Receive: 67 131.707728 130.979325 14: seq: 16, analog_in_state oid=6 next_clock=495753018 value=7601
Receive: 68 131.747696 130.979325 14: seq: 16, analog_in_state oid=10 next_clock=498313018 value=11035
Receive: 69 131.963923 131.963640 11: seq: 17, clock clock=493413484
Receive: 70 132.007726 131.963640 14: seq: 17, analog_in_state oid=6 next_clock=514953018 value=7597
Receive: 71 132.047774 131.963640 14: seq: 17, analog_in_state oid=10 next_clock=517513018 value=11037
Receive: 72 132.307637 131.963640 14: seq: 17, analog_in_state oid=6 next_clock=534153018 value=7597
Receive: 73 132.347769 131.963640 14: seq: 17, analog_in_state oid=10 next_clock=536713018 value=11029
Receive: 74 132.607816 131.963640 14: seq: 17, analog_in_state oid=6 next_clock=553353018 value=7601
Receive: 75 132.647625 131.963640 14: seq: 17, analog_in_state oid=10 next_clock=555913018 value=11036
Receive: 76 132.907587 131.963640 14: seq: 17, analog_in_state oid=6 next_clock=572553018 value=7596
Receive: 77 132.947561 131.963640 14: seq: 17, analog_in_state oid=10 next_clock=575113018 value=11034
Receive: 78 132.949718 132.949448 11: seq: 18, clock clock=556503813
Receive: 79 133.207704 132.949448 14: seq: 18, analog_in_state oid=6 next_clock=591753018 value=7601
Receive: 80 133.247590 132.949448 14: seq: 18, analog_in_state oid=10 next_clock=594313018 value=11036
Receive: 81 133.507752 132.949448 14: seq: 18, analog_in_state oid=6 next_clock=610953018 value=7603
Receive: 82 133.547647 132.949448 14: seq: 18, analog_in_state oid=10 next_clock=613513018 value=11035
Receive: 83 133.807832 132.949448 14: seq: 18, analog_in_state oid=6 next_clock=630153018 value=7596
Receive: 84 133.847801 132.949448 14: seq: 18, analog_in_state oid=10 next_clock=632713018 value=11034
Receive: 85 133.934428 133.934167 11: seq: 19, clock clock=619526532
Receive: 86 134.107799 133.934167 14: seq: 19, analog_in_state oid=6 next_clock=649353018 value=7598
Receive: 87 134.147610 133.934167 14: seq: 19, analog_in_state oid=10 next_clock=651913018 value=11030
Receive: 88 134.407693 133.934167 14: seq: 19, analog_in_state oid=6 next_clock=668553018 value=7599
Receive: 89 134.447603 133.934167 14: seq: 19, analog_in_state oid=10 next_clock=671113018 value=11035
Receive: 90 134.707661 133.934167 14: seq: 19, analog_in_state oid=6 next_clock=687753018 value=7597
Receive: 91 134.747564 133.934167 14: seq: 19, analog_in_state oid=10 next_clock=690313018 value=11037
Receive: 92 134.918887 134.918598 11: seq: 1a, clock clock=682529289
Receive: 93 135.007688 134.918598 14: seq: 1a, analog_in_state oid=6 next_clock=706953018 value=7599
Receive: 94 135.047661 134.918598 14: seq: 1a, analog_in_state oid=10 next_clock=709513018 value=11037
Receive: 95 135.307650 134.918598 14: seq: 1a, analog_in_state oid=6 next_clock=726153018 value=7597
Receive: 96 135.347666 134.918598 14: seq: 1a, analog_in_state oid=10 next_clock=728713018 value=11030
Receive: 97 135.607628 134.918598 14: seq: 1a, analog_in_state oid=6 next_clock=745353018 value=7600
Receive: 98 135.647651 134.918598 14: seq: 1a, analog_in_state oid=10 next_clock=747913018 value=11038
Receive: 99 135.708716 135.708066 12: seq: 1b, shutdown clock=733055593 static_string_id=Command request
MCU 'toolboard_t1' shutdown: Command request
clocksync state: mcu_freq=64000000 last_clock=9272474008 clock_est=(103.031 7231674489 63999882.611) min_half_rtt=0.000080 min_rtt_time=77.790 time_avg=103.031(600.432) clock_avg=7231674489.202(38427572517.868) pred_variance=1299747076.371 clock_adj=(-18.906 70348338.000)
Dumping serial stats: bytes_write=1656 bytes_read=10813 bytes_retransmit=9 bytes_invalid=0 send_seq=185 receive_seq=185 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 77.355047 77.355047 9: seq: 15, identify offset=2760 count=40
Sent 1 77.356093 77.356093 9: seq: 16, identify offset=2800 count=40
Sent 2 77.357103 77.357103 9: seq: 17, identify offset=2840 count=40
Sent 3 77.358197 77.358197 9: seq: 18, identify offset=2880 count=40
Sent 4 77.359013 77.359013 9: seq: 19, identify offset=2920 count=40
Sent 5 77.359781 77.359781 9: seq: 1a, identify offset=2960 count=40
Sent 6 77.360604 77.360604 9: seq: 1b, identify offset=3000 count=40
Sent 7 77.361384 77.361384 9: seq: 1c, identify offset=3040 count=40
Sent 8 77.362161 77.362161 9: seq: 1d, identify offset=3080 count=40
Sent 9 77.362925 77.362925 9: seq: 1e, identify offset=3120 count=40
Sent 10 77.376938 77.376938 6: seq: 1f, get_uptime
Sent 11 77.429214 77.429214 6: seq: 10, get_clock
Sent 12 77.480593 77.480593 6: seq: 11, get_clock
Sent 13 77.531834 77.531834 6: seq: 12, get_clock
Sent 14 77.583082 77.583082 6: seq: 13, get_clock
Sent 15 77.634406 77.634406 6: seq: 14, get_clock
Sent 16 77.685765 77.685765 6: seq: 15, get_clock
Sent 17 77.737379 77.737379 6: seq: 16, get_clock
Sent 18 77.788356 77.788356 6: seq: 17, get_clock
Sent 19 77.789677 77.789677 6: seq: 18, get_clock
Sent 20 77.791907 77.791907 12: seq: 19, debug_read order=1 addr=536835496
Sent 21 77.792401 77.792401 12: seq: 1a, debug_read order=1 addr=536835530
Sent 22 78.451958 78.451958 6: seq: 1b, get_config
Sent 23 78.453805 78.453805 7: seq: 1c, allocate_oids count=13
Sent 24 78.454060 78.454060 9: seq: 1d, config_spi oid=0 pin=PB12 cs_active_high=0
Sent 25 78.454207 78.454207 8: seq: 1e, config_adxl345 oid=1 spi_oid=0
Sent 26 78.454457 78.454457 9: seq: 1f, config_analog_in oid=6 pin=ADC_TEMPERATURE
Sent 27 78.454623 78.454623 15: seq: 10, spi_set_software_bus oid=0 miso_pin=PB2 mosi_pin=PB11 sclk_pin=PB10 mode=3 rate=5000000
Sent 28 78.454823 78.454823 12: seq: 11, config_tmcuart oid=2 rx_pin=PA15 pull_up=0 tx_pin=PA15 bit_time=1600
Sent 29 78.454950 78.454950 11: seq: 12, config_digital_out oid=7 pin=PA0 value=1 default_value=1 max_duration=0
Sent 30 78.455177 78.455177 9: seq: 13, set_digital_out_pwm_cycle oid=7 cycle_ticks=2560
Sent 31 78.455364 78.455364 11: seq: 14, config_digital_out oid=8 pin=PA1 value=0 default_value=1 max_duration=0
Sent 32 78.455502 78.455502 10: seq: 15, set_digital_out_pwm_cycle oid=8 cycle_ticks=640000
Sent 33 78.455680 78.455680 8: seq: 16, config_buttons oid=9 button_count=2
Sent 34 78.455857 78.455857 9: seq: 17, config_endstop oid=3 pin=PB6 pull_up=0
Sent 35 78.455986 78.455986 7: seq: 18, config_trsync oid=4
Sent 36 78.456120 78.456120 8: seq: 19, config_analog_in oid=10 pin=PA3
Sent 37 78.456198 78.456198 15: seq: 1a, config_digital_out oid=11 pin=PB13 value=0 default_value=0 max_duration=320000000
Sent 38 78.456256 78.456256 11: seq: 1b, set_digital_out_pwm_cycle oid=11 cycle_ticks=6400000
Sent 39 78.456322 78.456322 11: seq: 1c, config_stepper oid=5 step_pin=PD0 dir_pin=PD1 invert_step=4294967295 step_pulse_ticks=0
Sent 40 78.456376 78.456376 11: seq: 1d, config_digital_out oid=12 pin=PD2 value=1 default_value=1 max_duration=0
Sent 41 78.456460 78.456460 11: seq: 1e, finalize_config crc=2168895921
Sent 42 78.456561 78.456561 34: seq: 1f, query_analog_in oid=6 clock=1430709852 sample_ticks=64000 sample_count=8 rest_ticks=19200000 min_value=0 max_value=65535 range_check_count=4, queue_digital_out oid=7 clock=1376475524 on_ticks=2560
Sent 43 78.456621 78.456621 13: seq: 10, queue_digital_out oid=8 clock=1376478968 on_ticks=0
Sent 44 78.456673 78.456673 10: seq: 11, buttons_add oid=9 pos=0 pin=PB4 pull_up=1
Sent 45 78.456732 78.456732 10: seq: 12, buttons_add oid=9 pos=1 pin=PB3 pull_up=1
Sent 46 78.456795 78.456795 17: seq: 13, buttons_query oid=9 clock=1432629852 rest_ticks=128000 retransmit_count=50 invert=2
Sent 47 78.456858 78.456858 26: seq: 14, query_analog_in oid=10 clock=1433269852 sample_ticks=64000 sample_count=8 rest_ticks=19200000 min_value=10237 max_value=16734 range_check_count=4
Sent 48 78.456889 78.456889 13: seq: 15, queue_digital_out oid=11 clock=1376497623 on_ticks=0
Sent 49 78.456972 78.456972 6: seq: 16, get_config
Sent 50 78.773562 78.773562 6: seq: 17, get_clock
Sent 51 79.217816 79.217816 14: seq: 18, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 52 79.221852 79.221852 19: seq: 19, tmcuart_send oid=2 write=b'\xea\x03\x080\x80\x00\n\x08\xb8\x87' read=0
Sent 53 79.226178 79.226178 14: seq: 1a, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 54 79.230262 79.230262 19: seq: 1b, tmcuart_send oid=2 write=b'\xea\x03h0\x80\x00\x12\x08 \xda' read=0
Sent 55 79.232968 79.232968 14: seq: 1c, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 56 79.237429 79.237429 19: seq: 1d, tmcuart_send oid=2 write=b'\xea\x03\x88=\x91\x04\x1a\x88\xae\xe7' read=0
Sent 57 79.240155 79.240155 14: seq: 1e, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 58 79.244566 79.244566 19: seq: 1f, tmcuart_send oid=2 write=b'\xea\x03\x082\x80\x10\xb2\xc8\xa2\xa4' read=0
Sent 59 79.247481 79.247481 14: seq: 10, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 60 79.251910 79.251910 19: seq: 11, tmcuart_send oid=2 write=b'\xea\x03h2\x80\x1e\xfa\xef?\xdf' read=0
Sent 61 79.256083 79.256083 14: seq: 12, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 62 79.260650 79.260650 19: seq: 13, tmcuart_send oid=2 write=b'\xea\x03\x882\x80\x00\x02\x08\xa0\xe6' read=0
Sent 63 79.263335 79.263335 14: seq: 14, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 64 79.267772 79.267772 19: seq: 15, tmcuart_send oid=2 write=b'\xea\x03H8\x80\x00\x02\x08 \xde' read=0
Sent 65 79.270566 79.270566 14: seq: 16, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 66 79.275218 79.275218 19: seq: 17, tmcuart_send oid=2 write=b'\xea\x03\x08>\xe4\x1ar\x88\xa4\x85' read=0
Sent 67 79.278258 79.278258 14: seq: 18, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 68 79.282768 79.282768 19: seq: 19, tmcuart_send oid=2 write=b'\xea\x03(2\x80\x00\x02\x88"\xf3' read=0
Sent 69 79.285499 79.285499 14: seq: 1a, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 70 79.290328 79.290328 19: seq: 1b, tmcuart_send oid=2 write=b'\xea\x03\x088\x80\x00\x02\x08 \xba' read=0
Sent 71 79.293058 79.293058 14: seq: 1c, tmcuart_send oid=2 write=b'\xea\x03H \xe4' read=10
Sent 72 79.532899 79.532899 8: seq: 1d, buttons_ack oid=9 count=1
Sent 73 79.598816 79.598816 7: seq: 1e, stepper_get_position oid=5
Sent 74 79.599520 79.599520 14: seq: 1f, tmcuart_send oid=2 write=b'\xea\x03H-\xd5' read=10
Sent 75 79.790692 79.790692 6: seq: 10, get_clock
Sent 76 80.774647 80.774647 6: seq: 11, get_clock
Sent 77 114.249101 114.249101 6: seq: 12, get_clock
Sent 78 115.230431 115.230431 6: seq: 13, get_clock
Sent 79 116.215038 116.215038 6: seq: 14, get_clock
Sent 80 117.199496 117.199496 6: seq: 15, get_clock
Sent 81 118.183922 118.183922 6: seq: 16, get_clock
Sent 82 119.167760 119.167760 6: seq: 17, get_clock
Sent 83 120.153245 120.153245 6: seq: 18, get_clock
Sent 84 121.137296 121.137296 6: seq: 19, get_clock
Sent 85 122.120303 122.120303 6: seq: 1a, get_clock
Sent 86 123.104323 123.104323 6: seq: 1b, get_clock
Sent 87 124.088509 124.088509 6: seq: 1c, get_clock
Sent 88 125.072965 125.072965 6: seq: 1d, get_clock
Sent 89 126.056807 126.056807 6: seq: 1e, get_clock
Sent 90 127.042957 127.042957 6: seq: 1f, get_clock
Sent 91 128.027206 128.027206 6: seq: 10, get_clock
Sent 92 129.011436 129.011436 6: seq: 11, get_clock
Sent 93 129.995902 129.995902 6: seq: 12, get_clock
Sent 94 130.980633 130.980633 6: seq: 13, get_clock
Sent 95 131.965273 131.965273 6: seq: 14, get_clock
Sent 96 132.950053 132.950053 6: seq: 15, get_clock
Sent 97 133.934779 133.934779 6: seq: 16, get_clock
Sent 98 134.918897 134.918897 6: seq: 17, get_clock
Sent 99 135.709931 135.709931 6: seq: 18, emergency_stop
Dumping receive queue 100 messages
Receive: 0 123.104521 123.104323 11: seq: 1c, clock clock=4221376146
Receive: 1 123.307504 123.104323 13: seq: 1c, analog_in_state oid=6 next_clock=4253109852 value=7529
Receive: 2 123.347521 123.104323 13: seq: 1c, analog_in_state oid=10 next_clock=4255669852 value=11041
Receive: 3 123.607525 123.104323 13: seq: 1c, analog_in_state oid=6 next_clock=4272309852 value=7530
Receive: 4 123.647480 123.104323 13: seq: 1c, analog_in_state oid=10 next_clock=4274869852 value=11042
Receive: 5 123.907500 123.104323 13: seq: 1c, analog_in_state oid=6 next_clock=4291509852 value=7529
Receive: 6 123.947485 123.104323 13: seq: 1c, analog_in_state oid=10 next_clock=4294069852 value=11040
Receive: 7 124.088992 124.088509 10: seq: 1d, clock clock=4284361981
Receive: 8 124.207461 124.088509 13: seq: 1d, analog_in_state oid=6 next_clock=15742556 value=7532
Receive: 9 124.247457 124.088509 13: seq: 1d, analog_in_state oid=10 next_clock=18302556 value=11039
Receive: 10 124.507494 124.088509 13: seq: 1d, analog_in_state oid=6 next_clock=34942556 value=7530
Receive: 11 124.547508 124.088509 13: seq: 1d, analog_in_state oid=10 next_clock=37502556 value=11043
Receive: 12 124.807502 124.088509 13: seq: 1d, analog_in_state oid=6 next_clock=54142556 value=7533
Receive: 13 124.847490 124.088509 13: seq: 1d, analog_in_state oid=10 next_clock=56702556 value=11043
Receive: 14 125.073129 125.072965 10: seq: 1e, clock clock=52400692
Receive: 15 125.107525 125.072965 13: seq: 1e, analog_in_state oid=6 next_clock=73342556 value=7530
Receive: 16 125.147488 125.072965 13: seq: 1e, analog_in_state oid=10 next_clock=75902556 value=11042
Receive: 17 125.407475 125.072965 13: seq: 1e, analog_in_state oid=6 next_clock=92542556 value=7533
Receive: 18 125.447502 125.072965 13: seq: 1e, analog_in_state oid=10 next_clock=95102556 value=11043
Receive: 19 125.707480 125.072965 13: seq: 1e, analog_in_state oid=6 next_clock=111742556 value=7532
Receive: 20 125.747528 125.072965 13: seq: 1e, analog_in_state oid=10 next_clock=114302556 value=11043
Receive: 21 125.936745 125.072965 14: seq: 1e, stats count=170 sum=158675 sumsq=817077
Receive: 22 126.007541 125.072965 13: seq: 1e, analog_in_state oid=6 next_clock=130942556 value=7530
Receive: 23 126.047530 125.072965 13: seq: 1e, analog_in_state oid=10 next_clock=133502556 value=11040
Receive: 24 126.057103 126.056807 10: seq: 1f, clock clock=115369808
Receive: 25 126.307486 126.056807 13: seq: 1f, analog_in_state oid=6 next_clock=150142556 value=7530
Receive: 26 126.347555 126.056807 13: seq: 1f, analog_in_state oid=10 next_clock=152702556 value=11040
Receive: 27 126.607608 126.056807 13: seq: 1f, analog_in_state oid=6 next_clock=169342556 value=7529
Receive: 28 126.647566 126.056807 13: seq: 1f, analog_in_state oid=10 next_clock=171902556 value=11037
Receive: 29 126.907544 126.056807 13: seq: 1f, analog_in_state oid=6 next_clock=188542556 value=7531
Receive: 30 126.947549 126.056807 13: seq: 1f, analog_in_state oid=10 next_clock=191102556 value=11041
Receive: 31 127.043302 127.042957 10: seq: 10, clock clock=178481848
Receive: 32 127.207589 127.042957 14: seq: 10, analog_in_state oid=6 next_clock=207742556 value=7529
Receive: 33 127.247605 127.042957 14: seq: 10, analog_in_state oid=10 next_clock=210302556 value=11041
Receive: 34 127.507607 127.042957 14: seq: 10, analog_in_state oid=6 next_clock=226942556 value=7532
Receive: 35 127.547594 127.042957 14: seq: 10, analog_in_state oid=10 next_clock=229502556 value=11039
Receive: 36 127.808369 127.042957 14: seq: 10, analog_in_state oid=6 next_clock=246142556 value=7531
Receive: 37 127.847666 127.042957 14: seq: 10, analog_in_state oid=10 next_clock=248702556 value=11039
Receive: 38 128.027498 128.027206 11: seq: 11, clock clock=241473006
Receive: 39 128.107642 128.027206 14: seq: 11, analog_in_state oid=6 next_clock=265342556 value=7532
Receive: 40 128.147574 128.027206 14: seq: 11, analog_in_state oid=10 next_clock=267902556 value=11040
Receive: 41 128.407597 128.027206 14: seq: 11, analog_in_state oid=6 next_clock=284542556 value=7531
Receive: 42 128.447585 128.027206 14: seq: 11, analog_in_state oid=10 next_clock=287102556 value=11043
Receive: 43 128.707602 128.027206 14: seq: 11, analog_in_state oid=6 next_clock=303742556 value=7532
Receive: 44 128.747592 128.027206 14: seq: 11, analog_in_state oid=10 next_clock=306302556 value=11039
Receive: 45 129.007637 128.027206 14: seq: 11, analog_in_state oid=6 next_clock=322942556 value=7533
Receive: 46 129.011733 129.011436 11: seq: 12, clock clock=304463466
Receive: 47 129.047579 129.011436 14: seq: 12, analog_in_state oid=10 next_clock=325502556 value=11041
Receive: 48 129.307600 129.011436 14: seq: 12, analog_in_state oid=6 next_clock=342142556 value=7534
Receive: 49 129.347626 129.011436 14: seq: 12, analog_in_state oid=10 next_clock=344702556 value=11039
Receive: 50 129.607632 129.011436 14: seq: 12, analog_in_state oid=6 next_clock=361342556 value=7530
Receive: 51 129.647615 129.011436 14: seq: 12, analog_in_state oid=10 next_clock=363902556 value=11044
Receive: 52 129.907583 129.011436 14: seq: 12, analog_in_state oid=6 next_clock=380542556 value=7537
Receive: 53 129.947562 129.011436 14: seq: 12, analog_in_state oid=10 next_clock=383102556 value=11041
Receive: 54 129.996199 129.995902 11: seq: 13, clock clock=367469141
Receive: 55 130.207567 129.995902 14: seq: 13, analog_in_state oid=6 next_clock=399742556 value=7532
Receive: 56 130.247566 129.995902 14: seq: 13, analog_in_state oid=10 next_clock=402302556 value=11042
Receive: 57 130.507614 129.995902 14: seq: 13, analog_in_state oid=6 next_clock=418942556 value=7533
Receive: 58 130.547605 129.995902 14: seq: 13, analog_in_state oid=10 next_clock=421502556 value=11041
Receive: 59 130.808417 129.995902 14: seq: 13, analog_in_state oid=6 next_clock=438142556 value=7531
Receive: 60 130.847682 129.995902 14: seq: 13, analog_in_state oid=10 next_clock=440702556 value=11041
Receive: 61 130.980956 130.980633 11: seq: 14, clock clock=430491968
Receive: 62 130.980980 130.980633 14: seq: 14, stats count=170 sum=160778 sumsq=842496
Receive: 63 131.107629 130.980633 14: seq: 14, analog_in_state oid=6 next_clock=457342556 value=7531
Receive: 64 131.147577 130.980633 14: seq: 14, analog_in_state oid=10 next_clock=459902556 value=11041
Receive: 65 131.407608 130.980633 14: seq: 14, analog_in_state oid=6 next_clock=476542556 value=7533
Receive: 66 131.447577 130.980633 14: seq: 14, analog_in_state oid=10 next_clock=479102556 value=11042
Receive: 67 131.707614 130.980633 14: seq: 14, analog_in_state oid=6 next_clock=495742556 value=7533
Receive: 68 131.747596 130.980633 14: seq: 14, analog_in_state oid=10 next_clock=498302556 value=11042
Receive: 69 131.965612 131.965273 11: seq: 15, clock clock=493509258
Receive: 70 132.007602 131.965273 14: seq: 15, analog_in_state oid=6 next_clock=514942556 value=7532
Receive: 71 132.047657 131.965273 14: seq: 15, analog_in_state oid=10 next_clock=517502556 value=11039
Receive: 72 132.307901 131.965273 14: seq: 15, analog_in_state oid=6 next_clock=534142556 value=7533
Receive: 73 132.347647 131.965273 14: seq: 15, analog_in_state oid=10 next_clock=536702556 value=11039
Receive: 74 132.607677 131.965273 14: seq: 15, analog_in_state oid=6 next_clock=553342556 value=7534
Receive: 75 132.647749 131.965273 14: seq: 15, analog_in_state oid=10 next_clock=555902556 value=11043
Receive: 76 132.907847 131.965273 14: seq: 15, analog_in_state oid=6 next_clock=572542556 value=7536
Receive: 77 132.947659 131.965273 14: seq: 15, analog_in_state oid=10 next_clock=575102556 value=11040
Receive: 78 132.950280 132.950053 11: seq: 16, clock clock=556534405
Receive: 79 133.207594 132.950053 14: seq: 16, analog_in_state oid=6 next_clock=591742556 value=7532
Receive: 80 133.247692 132.950053 14: seq: 16, analog_in_state oid=10 next_clock=594302556 value=11040
Receive: 81 133.507627 132.950053 14: seq: 16, analog_in_state oid=6 next_clock=610942556 value=7531
Receive: 82 133.547766 132.950053 14: seq: 16, analog_in_state oid=10 next_clock=613502556 value=11042
Receive: 83 133.807681 132.950053 14: seq: 16, analog_in_state oid=6 next_clock=630142556 value=7534
Receive: 84 133.847659 132.950053 14: seq: 16, analog_in_state oid=10 next_clock=632702556 value=11039
Receive: 85 133.935091 133.934779 11: seq: 17, clock clock=619556000
Receive: 86 134.107659 133.934779 14: seq: 17, analog_in_state oid=6 next_clock=649342556 value=7538
Receive: 87 134.147735 133.934779 14: seq: 17, analog_in_state oid=10 next_clock=651902556 value=11044
Receive: 88 134.407584 133.934779 14: seq: 17, analog_in_state oid=6 next_clock=668542556 value=7532
Receive: 89 134.447711 133.934779 14: seq: 17, analog_in_state oid=10 next_clock=671102556 value=11039
Receive: 90 134.707566 133.934779 14: seq: 17, analog_in_state oid=6 next_clock=687742556 value=7535
Receive: 91 134.747644 133.934779 14: seq: 17, analog_in_state oid=10 next_clock=690302556 value=11041
Receive: 92 134.919147 134.918897 11: seq: 18, clock clock=682539416
Receive: 93 135.007558 134.918897 14: seq: 18, analog_in_state oid=6 next_clock=706942556 value=7533
Receive: 94 135.047563 134.918897 14: seq: 18, analog_in_state oid=10 next_clock=709502556 value=11039
Receive: 95 135.307616 134.918897 14: seq: 18, analog_in_state oid=6 next_clock=726142556 value=7540
Receive: 96 135.347665 134.918897 14: seq: 18, analog_in_state oid=10 next_clock=728702556 value=11037
Receive: 97 135.607621 134.918897 14: seq: 18, analog_in_state oid=6 next_clock=745342556 value=7536
Receive: 98 135.647649 134.918897 14: seq: 18, analog_in_state oid=10 next_clock=747902556 value=11042
Receive: 99 135.710345 135.709931 12: seq: 19, shutdown clock=733166164 static_string_id=Command request
MCU 'beacon' shutdown: Emergency stop
clocksync state: mcu_freq=32000000 last_clock=4569027110 clock_est=(103.332 3558228841 31999774.063) min_half_rtt=0.000192 min_rtt_time=123.104 time_avg=103.332(585.375) clock_avg=3558228841.157(18731860226.839) pred_variance=328519085.538 clock_adj=(-16.996 35173959.750)
Dumping serial stats: bytes_write=537 bytes_read=21533 bytes_retransmit=0 bytes_invalid=0 send_seq=88 receive_seq=88 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 73 messages
Sent 0 77.956255 77.956255 8: seq: 11, identify offset=0 count=40
Sent 1 77.967729 77.967729 8: seq: 10, identify offset=0 count=40
Sent 2 77.973191 77.973191 8: seq: 11, identify offset=40 count=40
Sent 3 77.974437 77.974437 8: seq: 12, identify offset=80 count=40
Sent 4 77.975806 77.975806 9: seq: 13, identify offset=120 count=40
Sent 5 77.977129 77.977129 9: seq: 14, identify offset=160 count=40
Sent 6 77.978536 77.978536 9: seq: 15, identify offset=200 count=40
Sent 7 77.979848 77.979848 9: seq: 16, identify offset=240 count=40
Sent 8 77.981216 77.981216 9: seq: 17, identify offset=280 count=40
Sent 9 77.982461 77.982461 9: seq: 18, identify offset=320 count=40
Sent 10 77.983675 77.983675 9: seq: 19, identify offset=360 count=40
Sent 11 77.984921 77.984921 9: seq: 1a, identify offset=400 count=40
Sent 12 77.986370 77.986370 9: seq: 1b, identify offset=440 count=40
Sent 13 77.987445 77.987445 9: seq: 1c, identify offset=480 count=40
Sent 14 77.988603 77.988603 9: seq: 1d, identify offset=520 count=40
Sent 15 77.989728 77.989728 9: seq: 1e, identify offset=560 count=40
Sent 16 77.990734 77.990734 9: seq: 1f, identify offset=600 count=40
Sent 17 77.991676 77.991676 9: seq: 10, identify offset=640 count=40
Sent 18 77.992739 77.992739 9: seq: 11, identify offset=680 count=40
Sent 19 77.993687 77.993687 9: seq: 12, identify offset=720 count=40
Sent 20 77.994716 77.994716 9: seq: 13, identify offset=760 count=40
Sent 21 77.995758 77.995758 9: seq: 14, identify offset=800 count=40
Sent 22 77.996999 77.996999 9: seq: 15, identify offset=840 count=40
Sent 23 77.998560 77.998560 9: seq: 16, identify offset=880 count=40
Sent 24 77.999926 77.999926 9: seq: 17, identify offset=920 count=40
Sent 25 78.001559 78.001559 9: seq: 18, identify offset=937 count=40
Sent 26 78.008673 78.008673 6: seq: 19, get_uptime
Sent 27 78.064295 78.064295 6: seq: 1a, get_clock
Sent 28 78.115703 78.115703 6: seq: 1b, get_clock
Sent 29 78.166918 78.166918 6: seq: 1c, get_clock
Sent 30 78.218093 78.218093 6: seq: 1d, get_clock
Sent 31 78.269187 78.269187 6: seq: 1e, get_clock
Sent 32 78.320844 78.320844 6: seq: 1f, get_clock
Sent 33 78.372219 78.372219 6: seq: 10, get_clock
Sent 34 78.423250 78.423250 6: seq: 11, get_clock
Sent 35 78.425169 78.425169 6: seq: 12, get_clock
Sent 36 79.297500 79.297500 6: seq: 13, get_config
Sent 37 79.409965 79.409965 6: seq: 14, get_clock
Sent 38 79.515279 79.515279 10: seq: 15, beacon_nvm_read len=8 offset=65534
Sent 39 79.516249 79.516249 8: seq: 16, beacon_nvm_read len=20 offset=0
Sent 40 79.518655 79.518655 14: seq: 17, beacon_set_threshold trigger=44069120 untrigger=43804705
Sent 41 79.518891 79.518891 7: seq: 18, beacon_stream en=0
Sent 42 79.519351 79.519351 8: seq: 19, beacon_accel_stream en=0 scale=0
Sent 43 79.519939 79.519939 7: seq: 1a, allocate_oids count=1
Sent 44 79.520057 79.520057 7: seq: 1b, config_trsync oid=0
Sent 45 79.520217 79.520217 11: seq: 1c, finalize_config crc=2501485974
Sent 46 79.520302 79.520302 6: seq: 1d, get_config
Sent 47 80.394371 80.394371 6: seq: 1e, get_clock
Sent 48 81.378849 81.378849 6: seq: 1f, get_clock
Sent 49 114.299268 114.299268 6: seq: 10, get_clock
Sent 50 115.230429 115.230429 6: seq: 11, get_clock
Sent 51 116.215266 116.215266 6: seq: 12, get_clock
Sent 52 117.199522 117.199522 6: seq: 13, get_clock
Sent 53 118.183942 118.183942 6: seq: 14, get_clock
Sent 54 119.168250 119.168250 6: seq: 15, get_clock
Sent 55 120.153281 120.153281 6: seq: 16, get_clock
Sent 56 121.137263 121.137263 6: seq: 17, get_clock
Sent 57 122.120148 122.120148 6: seq: 18, get_clock
Sent 58 123.104283 123.104283 6: seq: 19, get_clock
Sent 59 124.088523 124.088523 6: seq: 1a, get_clock
Sent 60 125.072929 125.072929 6: seq: 1b, get_clock
Sent 61 126.056925 126.056925 6: seq: 1c, get_clock
Sent 62 127.043527 127.043527 6: seq: 1d, get_clock
Sent 63 128.027237 128.027237 6: seq: 1e, get_clock
Sent 64 129.011892 129.011892 6: seq: 1f, get_clock
Sent 65 129.996857 129.996857 6: seq: 10, get_clock
Sent 66 130.980942 130.980942 6: seq: 11, get_clock
Sent 67 131.965522 131.965522 6: seq: 12, get_clock
Sent 68 132.950355 132.950355 6: seq: 13, get_clock
Sent 69 133.934978 133.934978 6: seq: 14, get_clock
Sent 70 134.919176 134.919176 6: seq: 15, get_clock
Sent 71 135.721923 135.721923 6: seq: 16, emergency_stop
Sent 72 135.724675 135.724675 7: seq: 17, beacon_stream en=0
Dumping receive queue 100 messages
Receive: 0 130.981480 130.980942 10: seq: 12, clock clock=148037512
Receive: 1 131.057735 130.980942 17: seq: 12, beacon_data samples=1 start_clock=150445096 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 2 131.074187 130.980942 16: seq: 12, beacon_status mcu_temp=44853 supply_voltage=49472 coil_temp=52065 status=1
Receive: 3 131.157741 130.980942 17: seq: 12, beacon_data samples=1 start_clock=153645897 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 4 131.174384 130.980942 16: seq: 12, beacon_status mcu_temp=44853 supply_voltage=49472 coil_temp=52065 status=1
Receive: 5 131.257780 130.980942 17: seq: 12, beacon_data samples=1 start_clock=156846696 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 6 131.274623 130.980942 16: seq: 12, beacon_status mcu_temp=44853 supply_voltage=49472 coil_temp=52065 status=1
Receive: 7 131.357817 130.980942 17: seq: 12, beacon_data samples=1 start_clock=160047498 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 8 131.374812 130.980942 16: seq: 12, beacon_status mcu_temp=44853 supply_voltage=49472 coil_temp=52065 status=1
Receive: 9 131.457836 130.980942 17: seq: 12, beacon_data samples=1 start_clock=163248298 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 10 131.475003 130.980942 16: seq: 12, beacon_status mcu_temp=44854 supply_voltage=49472 coil_temp=52065 status=1
Receive: 11 131.557819 130.980942 17: seq: 12, beacon_data samples=1 start_clock=166449093 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 12 131.575168 130.980942 16: seq: 12, beacon_status mcu_temp=44854 supply_voltage=49472 coil_temp=52065 status=1
Receive: 13 131.657918 130.980942 17: seq: 12, beacon_data samples=1 start_clock=169649892 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 14 131.675369 130.980942 16: seq: 12, beacon_status mcu_temp=44854 supply_voltage=49472 coil_temp=52064 status=1
Receive: 15 131.757810 130.980942 17: seq: 12, beacon_data samples=1 start_clock=172850678 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 16 131.775620 130.980942 16: seq: 12, beacon_status mcu_temp=44854 supply_voltage=49472 coil_temp=52064 status=1
Receive: 17 131.857882 130.980942 17: seq: 12, beacon_data samples=1 start_clock=176051480 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 18 131.875744 130.980942 16: seq: 12, beacon_status mcu_temp=44855 supply_voltage=49472 coil_temp=52064 status=1
Receive: 19 131.957836 130.980942 17: seq: 12, beacon_data samples=1 start_clock=179252282 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 20 131.966010 131.965522 10: seq: 13, clock clock=179544199
Receive: 21 131.975970 131.965522 16: seq: 13, beacon_status mcu_temp=44855 supply_voltage=49472 coil_temp=52064 status=1
Receive: 22 132.057883 131.965522 17: seq: 13, beacon_data samples=1 start_clock=182453088 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 23 132.076162 131.965522 16: seq: 13, beacon_status mcu_temp=44855 supply_voltage=49472 coil_temp=52064 status=1
Receive: 24 132.157937 131.965522 17: seq: 13, beacon_data samples=1 start_clock=185653883 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 25 132.176310 131.965522 16: seq: 13, beacon_status mcu_temp=44855 supply_voltage=49472 coil_temp=52064 status=1
Receive: 26 132.257940 131.965522 17: seq: 13, beacon_data samples=1 start_clock=188854669 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 27 132.276558 131.965522 16: seq: 13, beacon_status mcu_temp=44855 supply_voltage=49472 coil_temp=52064 status=1
Receive: 28 132.357970 131.965522 17: seq: 13, beacon_data samples=1 start_clock=192055467 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 29 132.376683 131.965522 16: seq: 13, beacon_status mcu_temp=44856 supply_voltage=49472 coil_temp=52064 status=1
Receive: 30 132.458008 131.965522 17: seq: 13, beacon_data samples=1 start_clock=195256262 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 31 132.476920 131.965522 16: seq: 13, beacon_status mcu_temp=44856 supply_voltage=49472 coil_temp=52064 status=1
Receive: 32 132.558029 131.965522 17: seq: 13, beacon_data samples=1 start_clock=198457068 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 33 132.577137 131.965522 16: seq: 13, beacon_status mcu_temp=44856 supply_voltage=49472 coil_temp=52064 status=1
Receive: 34 132.658069 131.965522 18: seq: 13, beacon_data samples=1 start_clock=201657853 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 35 132.677286 131.965522 16: seq: 13, beacon_status mcu_temp=44856 supply_voltage=49472 coil_temp=52064 status=1
Receive: 36 132.758093 131.965522 18: seq: 13, beacon_data samples=1 start_clock=204858644 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 37 132.777499 131.965522 16: seq: 13, beacon_status mcu_temp=44856 supply_voltage=49472 coil_temp=52064 status=1
Receive: 38 132.858160 131.965522 18: seq: 13, beacon_data samples=1 start_clock=208059440 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 39 132.877652 131.965522 16: seq: 13, beacon_status mcu_temp=44857 supply_voltage=49472 coil_temp=52064 status=1
Receive: 40 132.950843 132.950355 11: seq: 14, clock clock=211058042
Receive: 41 132.958174 132.950355 18: seq: 14, beacon_data samples=1 start_clock=211260241 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 42 132.977932 132.950355 16: seq: 14, beacon_status mcu_temp=44857 supply_voltage=49472 coil_temp=52064 status=1
Receive: 43 133.058200 132.950355 18: seq: 14, beacon_data samples=1 start_clock=214461040 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 44 133.078045 132.950355 16: seq: 14, beacon_status mcu_temp=44857 supply_voltage=49472 coil_temp=52064 status=1
Receive: 45 133.158302 132.950355 18: seq: 14, beacon_data samples=1 start_clock=217661846 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 46 133.178269 132.950355 16: seq: 14, beacon_status mcu_temp=44857 supply_voltage=49472 coil_temp=52064 status=1
Receive: 47 133.258224 132.950355 18: seq: 14, beacon_data samples=1 start_clock=220862645 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 48 133.278438 132.950355 16: seq: 14, beacon_status mcu_temp=44858 supply_voltage=49472 coil_temp=52064 status=1
Receive: 49 133.358295 132.950355 18: seq: 14, beacon_data samples=1 start_clock=224063446 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 50 133.378623 132.950355 16: seq: 14, beacon_status mcu_temp=44858 supply_voltage=49472 coil_temp=52064 status=1
Receive: 51 133.458328 132.950355 18: seq: 14, beacon_data samples=1 start_clock=227264253 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 52 133.478846 132.950355 16: seq: 14, beacon_status mcu_temp=44858 supply_voltage=49472 coil_temp=52064 status=1
Receive: 53 133.558297 132.950355 18: seq: 14, beacon_data samples=1 start_clock=230465052 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 54 133.579031 132.950355 16: seq: 14, beacon_status mcu_temp=44858 supply_voltage=49472 coil_temp=52064 status=1
Receive: 55 133.658504 132.950355 18: seq: 14, beacon_data samples=1 start_clock=233665852 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 56 133.679241 132.950355 16: seq: 14, beacon_status mcu_temp=44858 supply_voltage=49472 coil_temp=52064 status=1
Receive: 57 133.758325 132.950355 18: seq: 14, beacon_data samples=1 start_clock=236866645 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 58 133.779439 132.950355 16: seq: 14, beacon_status mcu_temp=44858 supply_voltage=49473 coil_temp=52064 status=1
Receive: 59 133.858399 132.950355 18: seq: 14, beacon_data samples=1 start_clock=240067433 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 60 133.879597 132.950355 16: seq: 14, beacon_status mcu_temp=44858 supply_voltage=49473 coil_temp=52064 status=1
Receive: 61 133.935428 133.934978 11: seq: 15, clock clock=242565958
Receive: 62 133.958368 133.934978 18: seq: 15, beacon_data samples=1 start_clock=243268229 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 63 133.979879 133.934978 16: seq: 15, beacon_status mcu_temp=44858 supply_voltage=49473 coil_temp=52064 status=1
Receive: 64 134.058429 133.934978 18: seq: 15, beacon_data samples=1 start_clock=246469022 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 65 134.080017 133.934978 16: seq: 15, beacon_status mcu_temp=44858 supply_voltage=49473 coil_temp=52064 status=1
Receive: 66 134.158447 133.934978 18: seq: 15, beacon_data samples=1 start_clock=249669806 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 67 134.180285 133.934978 16: seq: 15, beacon_status mcu_temp=44858 supply_voltage=49473 coil_temp=52064 status=1
Receive: 68 134.258474 133.934978 18: seq: 15, beacon_data samples=1 start_clock=252870601 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 69 134.280405 133.934978 16: seq: 15, beacon_status mcu_temp=44859 supply_voltage=49474 coil_temp=52064 status=1
Receive: 70 134.358500 133.934978 18: seq: 15, beacon_data samples=1 start_clock=256071391 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 71 134.380655 133.934978 16: seq: 15, beacon_status mcu_temp=44859 supply_voltage=49474 coil_temp=52064 status=1
Receive: 72 134.458494 133.934978 18: seq: 15, beacon_data samples=1 start_clock=259272184 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 73 134.480794 133.934978 16: seq: 15, beacon_status mcu_temp=44859 supply_voltage=49474 coil_temp=52064 status=1
Receive: 74 134.558507 133.934978 18: seq: 15, beacon_data samples=1 start_clock=262472977 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 75 134.580979 133.934978 16: seq: 15, beacon_status mcu_temp=44859 supply_voltage=49474 coil_temp=52064 status=1
Receive: 76 134.658564 133.934978 18: seq: 15, beacon_data samples=1 start_clock=265673767 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 77 134.681215 133.934978 16: seq: 15, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 78 134.758540 133.934978 18: seq: 15, beacon_data samples=1 start_clock=268874555 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 79 134.781382 133.934978 16: seq: 15, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 80 134.858699 133.934978 18: seq: 15, beacon_data samples=1 start_clock=272075359 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 81 134.881568 133.934978 16: seq: 15, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 82 134.919652 134.919176 11: seq: 16, clock clock=274059814
Receive: 83 134.958618 134.919176 18: seq: 16, beacon_data samples=1 start_clock=275276156 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 84 134.981798 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 85 135.058680 134.919176 18: seq: 16, beacon_data samples=1 start_clock=278476950 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 86 135.081990 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 87 135.158758 134.919176 18: seq: 16, beacon_data samples=1 start_clock=281677752 delta_clock=0 data=b'\x82\x8f\xf2L'
Receive: 88 135.182225 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 89 135.258739 134.919176 18: seq: 16, beacon_data samples=1 start_clock=284878553 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 90 135.282355 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 91 135.358798 134.919176 18: seq: 16, beacon_data samples=1 start_clock=288079340 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 92 135.382514 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 93 135.458765 134.919176 18: seq: 16, beacon_data samples=1 start_clock=291280123 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 94 135.482650 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 95 135.558809 134.919176 18: seq: 16, beacon_data samples=1 start_clock=294480917 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 96 135.582925 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 97 135.658846 134.919176 18: seq: 16, beacon_data samples=1 start_clock=297681718 delta_clock=0 data=b'\x82\x8f\xf4\xec'
Receive: 98 135.683091 134.919176 16: seq: 16, beacon_status mcu_temp=44860 supply_voltage=49474 coil_temp=52064 status=1
Receive: 99 135.722453 135.721923 12: seq: 17, shutdown clock=299748708 static_string_id=Emergency stop
Reactor garbage collection: (135.349827197, 121.256341612, 0.0)
MCU 'mcu' shutdown: Timer too close
This often indicates the host computer is overloaded. Check
for other processes consuming excessive CPU time, high swap
usage, disk errors, overheating, unstable voltage, or
similar system problems on the host computer.
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
Requested toolhead position at shutdown time 113.619699: (0.0, 0.0, 0.0)
MCU 'mcu' shutdown: Timer too close
This often indicates the host computer is overloaded. Check
for other processes consuming excessive CPU time, high swap
usage, disk errors, overheating, unstable voltage, or
similar system problems on the host computer.
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
MCU 'mcu' shutdown: Timer too close
This often indicates the host computer is overloaded. Check
for other processes consuming excessive CPU time, high swap
usage, disk errors, overheating, unstable voltage, or
similar system problems on the host computer.
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
Resetting prediction variance 135.902: freq=96558251 diff=767311349 stddev=180000.000
Stats 136.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4802 bytes_read=14451 bytes_retransmit=248 bytes_invalid=0 send_seq=366 receive_seq=366 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=97828514 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000019 bytes_write=1069 bytes_read=5575 bytes_retransmit=0 bytes_invalid=0 send_seq=148 receive_seq=148 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999568 adj=54959624 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1673 bytes_read=10892 bytes_retransmit=9 bytes_invalid=0 send_seq=188 receive_seq=188 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=70348463 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1662 bytes_read=10871 bytes_retransmit=9 bytes_invalid=0 send_seq=186 receive_seq=186 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999881 adj=70348338 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=543 bytes_read=21719 bytes_retransmit=0 bytes_invalid=0 send_seq=89 receive_seq=89 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999773 adj=35173959 coil_temp=29.3 refs=0 mcu_temp=30.17 supply_voltage=3.026 sysload=2.81 cputime=9.751 memavail=419112 print_time=117.482 buffer_time=0.579 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 136.887: freq=97828514 diff=781406345 stddev=180000.000
Stats 137.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=4862 bytes_read=14605 bytes_retransmit=248 bytes_invalid=0 send_seq=370 receive_seq=370 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=99089338 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000019 bytes_write=1075 bytes_read=5591 bytes_retransmit=0 bytes_invalid=0 send_seq=149 receive_seq=149 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999591 adj=59297479 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1679 bytes_read=10992 bytes_retransmit=9 bytes_invalid=0 send_seq=189 receive_seq=189 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=75901026 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1668 bytes_read=10971 bytes_retransmit=9 bytes_invalid=0 send_seq=187 receive_seq=187 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999883 adj=75900901 Octopus_V1.1_F446: temp=33.5 EBB42_v1.2_T0: temp=31.3 EBB42_v1.2_T1: temp=31.9 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=549 bytes_read=22075 bytes_retransmit=0 bytes_invalid=0 send_seq=90 receive_seq=90 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999773 adj=37950242 coil_temp=29.3 refs=0 mcu_temp=30.20 supply_voltage=3.026 sysload=2.81 cputime=9.814 memavail=419116 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 137.872: freq=99089338 diff=794251210 stddev=180000.000
Stats 138.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=4906 bytes_read=14761 bytes_retransmit=248 bytes_invalid=0 send_seq=373 receive_seq=373 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=100340527 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000019 bytes_write=1081 bytes_read=5607 bytes_retransmit=0 bytes_invalid=0 send_seq=150 receive_seq=150 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999612 adj=52130515 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1685 bytes_read=11092 bytes_retransmit=9 bytes_invalid=0 send_seq=190 receive_seq=190 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=66726837 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1674 bytes_read=11071 bytes_retransmit=9 bytes_invalid=0 send_seq=188 receive_seq=188 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999886 adj=66726751 Octopus_V1.1_F446: temp=33.6 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=555 bytes_read=22431 bytes_retransmit=0 bytes_invalid=0 send_seq=91 receive_seq=91 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999776 adj=33363175 coil_temp=29.3 refs=0 mcu_temp=30.20 supply_voltage=3.026 sysload=2.81 cputime=9.880 memavail=419116 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 138.857: freq=100340527 diff=805923961 stddev=180000.000
Stats 139.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=4950 bytes_read=14888 bytes_retransmit=248 bytes_invalid=0 send_seq=376 receive_seq=376 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=101581958 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000019 bytes_write=1087 bytes_read=5623 bytes_retransmit=0 bytes_invalid=0 send_seq=151 receive_seq=151 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999615 adj=51453271 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1691 bytes_read=11220 bytes_retransmit=9 bytes_invalid=0 send_seq=191 receive_seq=191 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=65859686 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1680 bytes_read=11199 bytes_retransmit=9 bytes_invalid=0 send_seq=189 receive_seq=189 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999888 adj=65859666 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.5 EBB42_v1.2_T1: temp=32.1 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=561 bytes_read=22787 bytes_retransmit=0 bytes_invalid=0 send_seq=92 receive_seq=92 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999776 adj=32929658 coil_temp=29.3 refs=0 mcu_temp=30.21 supply_voltage=3.026 sysload=2.81 cputime=9.945 memavail=419116 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 139.842: freq=101581958 diff=816388505 stddev=180000.000
Stats 140.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=4994 bytes_read=15015 bytes_retransmit=248 bytes_invalid=0 send_seq=379 receive_seq=379 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=102813357 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000036 bytes_write=1093 bytes_read=5652 bytes_retransmit=0 bytes_invalid=0 send_seq=152 receive_seq=152 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999620 adj=50883312 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1697 bytes_read=11320 bytes_retransmit=9 bytes_invalid=0 send_seq=192 receive_seq=192 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999931 adj=65130318 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1686 bytes_read=11299 bytes_retransmit=9 bytes_invalid=0 send_seq=190 receive_seq=190 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999889 adj=65130305 Octopus_V1.1_F446: temp=33.6 EBB42_v1.2_T0: temp=31.5 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=567 bytes_read=23143 bytes_retransmit=0 bytes_invalid=0 send_seq=93 receive_seq=93 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999777 adj=32564972 coil_temp=29.3 refs=0 mcu_temp=30.22 supply_voltage=3.026 sysload=2.66 cputime=10.009 memavail=419116 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 140.827: freq=102813357 diff=825821721 stddev=180000.000
Stats 141.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=5038 bytes_read=15171 bytes_retransmit=248 bytes_invalid=0 send_seq=382 receive_seq=382 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=104034716 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000036 bytes_write=1099 bytes_read=5668 bytes_retransmit=0 bytes_invalid=0 send_seq=153 receive_seq=153 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999634 adj=50405529 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1703 bytes_read=11434 bytes_retransmit=9 bytes_invalid=0 send_seq=193 receive_seq=193 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999930 adj=64518853 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1692 bytes_read=11413 bytes_retransmit=9 bytes_invalid=0 send_seq=191 receive_seq=191 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999888 adj=64518832 Octopus_V1.1_F446: temp=33.8 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.2 raspberry_pi: temp=42.4 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=573 bytes_read=23517 bytes_retransmit=0 bytes_invalid=0 send_seq=94 receive_seq=94 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999779 adj=32259240 coil_temp=29.3 refs=0 mcu_temp=30.22 supply_voltage=3.026 sysload=2.66 cputime=10.074 memavail=419384 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.6 pwm=0.000
Resetting prediction variance 141.811: freq=104034716 diff=834127895 stddev=180000.000
Stats 142.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5082 bytes_read=15312 bytes_retransmit=248 bytes_invalid=0 send_seq=385 receive_seq=385 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=105245772 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000036 bytes_write=1105 bytes_read=5684 bytes_retransmit=0 bytes_invalid=0 send_seq=154 receive_seq=154 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999646 adj=49995210 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1709 bytes_read=11562 bytes_retransmit=9 bytes_invalid=0 send_seq=194 receive_seq=194 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999930 adj=63993515 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1698 bytes_read=11541 bytes_retransmit=9 bytes_invalid=0 send_seq=192 receive_seq=192 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999888 adj=63993489 Octopus_V1.1_F446: temp=33.5 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=42.4 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=579 bytes_read=23873 bytes_retransmit=0 bytes_invalid=0 send_seq=95 receive_seq=95 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999779 adj=31996601 coil_temp=29.3 refs=0 mcu_temp=30.23 supply_voltage=3.026 sysload=2.66 cputime=10.141 memavail=419384 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 142.795: freq=105245772 diff=841412223 stddev=180000.000
Stats 143.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5126 bytes_read=15439 bytes_retransmit=248 bytes_invalid=0 send_seq=388 receive_seq=388 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=106446390 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000036 bytes_write=1111 bytes_read=5700 bytes_retransmit=0 bytes_invalid=0 send_seq=155 receive_seq=155 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999660 adj=49642507 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1715 bytes_read=11662 bytes_retransmit=9 bytes_invalid=0 send_seq=195 receive_seq=195 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999930 adj=63541998 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1704 bytes_read=11641 bytes_retransmit=9 bytes_invalid=0 send_seq=193 receive_seq=193 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999888 adj=63541963 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.1 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=585 bytes_read=24229 bytes_retransmit=0 bytes_invalid=0 send_seq=96 receive_seq=96 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999779 adj=31770847 coil_temp=29.3 refs=0 mcu_temp=30.24 supply_voltage=3.026 sysload=2.66 cputime=10.200 memavail=415616 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 143.779: freq=106446390 diff=847762882 stddev=180000.000
Stats 144.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5170 bytes_read=15595 bytes_retransmit=248 bytes_invalid=0 send_seq=391 receive_seq=391 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=107636527 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000036 bytes_write=1117 bytes_read=5716 bytes_retransmit=0 bytes_invalid=0 send_seq=156 receive_seq=156 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999656 adj=49329692 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1721 bytes_read=11762 bytes_retransmit=9 bytes_invalid=0 send_seq=196 receive_seq=196 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=63141501 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1710 bytes_read=11741 bytes_retransmit=9 bytes_invalid=0 send_seq=194 receive_seq=194 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999886 adj=63141460 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=591 bytes_read=24585 bytes_retransmit=0 bytes_invalid=0 send_seq=97 receive_seq=97 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999779 adj=31570591 coil_temp=29.3 refs=0 mcu_temp=30.24 supply_voltage=3.026 sysload=2.66 cputime=10.227 memavail=422180 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 144.764: freq=107636527 diff=853173003 stddev=180000.000
Stats 145.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5214 bytes_read=15722 bytes_retransmit=248 bytes_invalid=0 send_seq=394 receive_seq=394 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=108816053 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000036 bytes_write=1123 bytes_read=5732 bytes_retransmit=0 bytes_invalid=0 send_seq=157 receive_seq=157 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999655 adj=49053997 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1727 bytes_read=11890 bytes_retransmit=9 bytes_invalid=0 send_seq=197 receive_seq=197 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999926 adj=62788857 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1716 bytes_read=11869 bytes_retransmit=9 bytes_invalid=0 send_seq=195 receive_seq=195 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999885 adj=62788828 Octopus_V1.1_F446: temp=33.8 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.2 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=597 bytes_read=24941 bytes_retransmit=0 bytes_invalid=0 send_seq=98 receive_seq=98 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999779 adj=31394284 coil_temp=29.3 refs=0 mcu_temp=30.24 supply_voltage=3.026 sysload=2.45 cputime=10.255 memavail=422048 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.0 pwm=0.000 extruder1: target=0 temp=30.4 pwm=0.000
Resetting prediction variance 145.748: freq=108816053 diff=857705091 stddev=180000.000
Stats 146.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5258 bytes_read=15849 bytes_retransmit=248 bytes_invalid=0 send_seq=397 receive_seq=397 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=109984893 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000029 bytes_write=1129 bytes_read=5761 bytes_retransmit=0 bytes_invalid=0 send_seq=158 receive_seq=158 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999653 adj=48810222 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1733 bytes_read=12004 bytes_retransmit=9 bytes_invalid=0 send_seq=198 receive_seq=198 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999924 adj=62476962 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1722 bytes_read=11983 bytes_retransmit=9 bytes_invalid=0 send_seq=196 receive_seq=196 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999884 adj=62476943 Octopus_V1.1_F446: temp=33.8 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.2 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=603 bytes_read=25297 bytes_retransmit=0 bytes_invalid=0 send_seq=99 receive_seq=99 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999777 adj=31238359 coil_temp=29.3 refs=0 mcu_temp=30.23 supply_voltage=3.026 sysload=2.45 cputime=10.283 memavail=422048 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.2 pwm=0.000
Resetting prediction variance 146.732: freq=109984893 diff=861376474 stddev=180000.000
Stats 147.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5302 bytes_read=16019 bytes_retransmit=248 bytes_invalid=0 send_seq=400 receive_seq=400 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=111142938 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000029 bytes_write=1135 bytes_read=5777 bytes_retransmit=0 bytes_invalid=0 send_seq=159 receive_seq=159 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999655 adj=48592129 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1739 bytes_read=12104 bytes_retransmit=9 bytes_invalid=0 send_seq=199 receive_seq=199 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999924 adj=62197939 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1728 bytes_read=12083 bytes_retransmit=9 bytes_invalid=0 send_seq=197 receive_seq=197 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999881 adj=62197912 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.5 EBB42_v1.2_T1: temp=32.1 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=609 bytes_read=25653 bytes_retransmit=0 bytes_invalid=0 send_seq=100 receive_seq=100 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999776 adj=31098852 coil_temp=29.3 refs=0 mcu_temp=30.23 supply_voltage=3.026 sysload=2.45 cputime=10.310 memavail=421308 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 147.717: freq=111142938 diff=864235834 stddev=180000.000
Stats 148.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5327 bytes_read=16134 bytes_retransmit=248 bytes_invalid=0 send_seq=402 receive_seq=402 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=112290101 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000029 bytes_write=1141 bytes_read=5793 bytes_retransmit=0 bytes_invalid=0 send_seq=160 receive_seq=160 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999657 adj=48394333 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1745 bytes_read=12232 bytes_retransmit=9 bytes_invalid=0 send_seq=200 receive_seq=200 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999923 adj=61944800 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1734 bytes_read=12211 bytes_retransmit=9 bytes_invalid=0 send_seq=198 receive_seq=198 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999880 adj=61944740 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=615 bytes_read=26009 bytes_retransmit=0 bytes_invalid=0 send_seq=101 receive_seq=101 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999776 adj=30972253 coil_temp=29.3 refs=0 mcu_temp=30.22 supply_voltage=3.026 sysload=2.45 cputime=10.345 memavail=421324 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 148.701: freq=112290101 diff=866303231 stddev=180000.000
Stats 149.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5371 bytes_read=16261 bytes_retransmit=248 bytes_invalid=0 send_seq=405 receive_seq=405 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=113426283 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000029 bytes_write=1147 bytes_read=5809 bytes_retransmit=0 bytes_invalid=0 send_seq=161 receive_seq=161 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999661 adj=48216346 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1751 bytes_read=12332 bytes_retransmit=9 bytes_invalid=0 send_seq=201 receive_seq=201 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999923 adj=61716986 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1740 bytes_read=12311 bytes_retransmit=9 bytes_invalid=0 send_seq=199 receive_seq=199 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999885 adj=61716930 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=43.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=621 bytes_read=26365 bytes_retransmit=0 bytes_invalid=0 send_seq=102 receive_seq=102 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999776 adj=30858354 coil_temp=29.3 refs=0 mcu_temp=30.22 supply_voltage=3.026 sysload=2.45 cputime=10.405 memavail=421324 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 149.685: freq=113426283 diff=867632397 stddev=180000.000
Stats 150.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5415 bytes_read=16417 bytes_retransmit=248 bytes_invalid=0 send_seq=408 receive_seq=408 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=114551414 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000029 bytes_write=1153 bytes_read=5825 bytes_retransmit=0 bytes_invalid=0 send_seq=162 receive_seq=162 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999667 adj=48053075 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1757 bytes_read=12432 bytes_retransmit=9 bytes_invalid=0 send_seq=202 receive_seq=202 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999923 adj=61507994 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1746 bytes_read=12411 bytes_retransmit=9 bytes_invalid=0 send_seq=200 receive_seq=200 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999887 adj=61508024 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.5 EBB42_v1.2_T1: temp=32.1 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=627 bytes_read=26721 bytes_retransmit=0 bytes_invalid=0 send_seq=103 receive_seq=103 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999776 adj=30753844 coil_temp=29.3 refs=0 mcu_temp=30.21 supply_voltage=3.026 sysload=2.25 cputime=10.468 memavail=421324 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 150.669: freq=114551414 diff=868251679 stddev=180000.000
Stats 151.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5440 bytes_read=16532 bytes_retransmit=248 bytes_invalid=0 send_seq=410 receive_seq=410 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=115665422 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000014 bytes_write=1159 bytes_read=5854 bytes_retransmit=0 bytes_invalid=0 send_seq=163 receive_seq=163 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999675 adj=47903836 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1763 bytes_read=12574 bytes_retransmit=9 bytes_invalid=0 send_seq=203 receive_seq=203 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999926 adj=61316920 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1752 bytes_read=12553 bytes_retransmit=9 bytes_invalid=0 send_seq=201 receive_seq=201 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999891 adj=61316960 Octopus_V1.1_F446: temp=33.9 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.2 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=633 bytes_read=27077 bytes_retransmit=0 bytes_invalid=0 send_seq=104 receive_seq=104 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999777 adj=30658299 coil_temp=29.3 refs=0 mcu_temp=30.20 supply_voltage=3.026 sysload=2.25 cputime=10.531 memavail=421324 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 151.654: freq=115665422 diff=868229175 stddev=180000.000
Stats 152.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5446 bytes_read=16649 bytes_retransmit=248 bytes_invalid=0 send_seq=411 receive_seq=411 retransmit_seq=359 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=116768298 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000014 bytes_write=1165 bytes_read=5870 bytes_retransmit=0 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999683 adj=47765813 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1769 bytes_read=12674 bytes_retransmit=9 bytes_invalid=0 send_seq=204 receive_seq=204 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=61140216 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1758 bytes_read=12653 bytes_retransmit=9 bytes_invalid=0 send_seq=202 receive_seq=202 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999892 adj=61140250 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.0 raspberry_pi: temp=42.8 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=639 bytes_read=27433 bytes_retransmit=0 bytes_invalid=0 send_seq=105 receive_seq=105 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999777 adj=30569927 coil_temp=29.3 refs=0 mcu_temp=30.20 supply_voltage=3.026 sysload=2.25 cputime=10.593 memavail=421324 print_time=117.482 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.3 pwm=0.000
Resetting prediction variance 152.642: freq=116768298 diff=867768952 stddev=180000.000
Attempting MCU 'mcu' reset command
Attempting MCU 'rpi' config_reset command
b'Got EOF when reading from device'
Attempting MCU 'toolboard_t0' reset command
Attempting MCU 'toolboard_t1' reset command
Attempting MCU 'beacon' reset command
webhooks client 4119939008: Disconnected
Restarting printer
Start printer at Tue Aug 5 08:25:16 2025 (1754378716.5 153.9)
===== Config file =====
[mcu rpi]
serial = /tmp/klipper_host_mcu
[board_pins btt-octopus-11]
aliases =
x_step_pin=PF13,
x_dir_pin=PF12,
x_enable_pin=PF14,
x_uart_pin=PC4,
x_diag_pin=PG6,
x_endstop_pin=PG6,
dual_carriage_step_pin=PF9,
dual_carriage_dir_pin=PF10,
dual_carriage_enable_pin=PG2,
dual_carriage_uart_pin=PF2,
dual_carriage_diag_pin=PG12,
dual_carriage_endstop_pin=PG12,
y_step_pin=PG0,
y_dir_pin=PG1,
y_enable_pin=PF15,
y_uart_pin=PD11,
y_diag_pin=PG9,
y_endstop_pin=PG9,
y1_step_pin=PG4,
y1_dir_pin=PC1,
y1_enable_pin=PA0,
y1_uart_pin=PC7,
y1_diag_pin=PG11,
y1_endstop_pin=PG11,
z0_step_pin=PC13,
z0_dir_pin=PF0,
z0_enable_pin=PF1,
z0_uart_pin=PE4,
z0_diag_pin=PG13,
z1_step_pin=PE2,
z1_dir_pin=PE3,
z1_enable_pin=PD4,
z1_uart_pin=PE1,
z1_diag_pin=PG14,
z2_step_pin=PE6,
z2_dir_pin=PA14,
z2_enable_pin=PE0,
z2_uart_pin=PD3,
z2_diag_pin=PG15,
e_step_pin=PF11,
e_dir_pin=PG3,
e_enable_pin=PG5,
e_uart_pin=PC6,
e_heater_pin=PA2,
e_sensor_pin=PF4,
stepper_spi_mosi_pin=PA7,
stepper_spi_miso_pin=PA6,
stepper_spi_sclk_pin=PA5,
adxl345_cs_pin=PA15,
bltouch_sensor_pin=PB7,
bltouch_control_pin=PB6,
probe_pin=PB7,
fan_part_cooling_pin=PA8,
fan_toolhead_cooling_pin=PE5,
fan_controller_board_pin=PD12,
heater_bed_heating_pin=PA1,
heater_bed_sensor_pin=PF3,
4p_fan_part_cooling_pin=null,
4p_fan_part_cooling_tach_pin=null,
4p_toolhead_cooling_pin=null,
4p_toolhead_cooling_tach_pin=null,
4p_controller_board_pin=null,
4p_controller_board_tach_pin=null
[mcu]
serial = /dev/RatOS/btt-octopus-11
[temperature_sensor Octopus_V1.1_F446]
sensor_type = temperature_mcu
[adxl345 controlboard]
cs_pin = PA15
spi_bus = spi3
[board_pins toolboard_t0]
mcu = toolboard_t0
aliases =
e_step_pin=PD0,
e_dir_pin=PD1,
e_enable_pin=PD2,
e_uart_pin=PA15,
e_heater_pin=PB13,
e_sensor_pin=PA3,
stepper_spi_mosi_pin=null,
stepper_spi_miso_pin=null,
stepper_spi_sclk_pin=null,
adxl345_cs_pin=PB12,
bltouch_sensor_pin=PB8,
bltouch_control_pin=PB9,
probe_pin=PB9,
fan_part_cooling_pin=PA0,
fan_toolhead_cooling_pin=PA1,
fan_controller_board_pin=null,
heater_bed_heating_pin=null,
heater_bed_sensor_pin=null,
4p_fan_part_cooling_pin=null,
4p_fan_part_cooling_tach_pin=null,
4p_toolhead_cooling_pin=null,
4p_toolhead_cooling_tach_pin=null,
4p_controller_board_pin=null,
4p_controller_board_tach_pin=null
[mcu toolboard_t0]
serial = /dev/RatOS/btt-ebb42-12-t0
[temperature_sensor EBB42_v1.2_T0]
sensor_type = temperature_mcu
sensor_mcu = toolboard_t0
[adxl345 toolboard_t0]
axes_map = x, z, y
cs_pin = toolboard_t0:PB12
spi_software_mosi_pin = toolboard_t0:PB11
spi_software_miso_pin = toolboard_t0:PB2
spi_software_sclk_pin = toolboard_t0:PB10
[board_pins toolboard_t1]
mcu = toolboard_t1
aliases =
e_step_pin=PD0,
e_dir_pin=PD1,
e_enable_pin=PD2,
e_uart_pin=PA15,
e_heater_pin=PB13,
e_sensor_pin=PA3,
stepper_spi_mosi_pin=null,
stepper_spi_miso_pin=null,
stepper_spi_sclk_pin=null,
adxl345_cs_pin=PB12,
bltouch_sensor_pin=PB8,
bltouch_control_pin=PB9,
probe_pin=PB9,
fan_part_cooling_pin=PA0,
fan_toolhead_cooling_pin=PA1,
fan_controller_board_pin=null,
heater_bed_heating_pin=null,
heater_bed_sensor_pin=null,
4p_fan_part_cooling_pin=null,
4p_fan_part_cooling_tach_pin=null,
4p_toolhead_cooling_pin=null,
4p_toolhead_cooling_tach_pin=null,
4p_controller_board_pin=null,
4p_controller_board_tach_pin=null
[mcu toolboard_t1]
serial = /dev/RatOS/btt-ebb42-12-t1
[temperature_sensor EBB42_v1.2_T1]
sensor_type = temperature_mcu
sensor_mcu = toolboard_t1
[adxl345 toolboard_t1]
axes_map = x, z, y
cs_pin = toolboard_t1:PB12
spi_software_mosi_pin = toolboard_t1:PB11
spi_software_miso_pin = toolboard_t1:PB2
spi_software_sclk_pin = toolboard_t1:PB10
[gcode_macro RatOS]
variable_homing = "endstops"
variable_z_probe = "static"
variable_sensorless_x_current = 0.6
variable_sensorless_y_current = 0.9
variable_safe_home_x = "middle"
variable_safe_home_y = "middle"
variable_driver_type_x = "tmc2209"
variable_driver_type_y = "tmc2209"
variable_stowable_probe_stop_on_error = False
variable_chamber_filter_enable = True
variable_chamber_filter_speed = 0.5
variable_chamber_filter_disable_speed = 1.0
variable_chamber_filter_enable_at = "after_print_start"
variable_chamber_filter_disable_period = 300
variable_chamber_filter_disable_bed_temp = 0
variable_chamber_heater_enable = True
variable_chamber_heater_bed_temp = 115
variable_chamber_heater_preheating_temp = 150
variable_chamber_heater_heating_temp_offset = 25
variable_chamber_heater_control_external_heater = False
variable_chamber_heater_air_circulation_enable = True
variable_chamber_heater_air_circulation_fan_speed = 0.35
variable_chamber_heater_air_circulation_y_pos = 0
variable_chamber_heater_air_circulation_z_pos = 100
variable_chamber_heater_extra_fan_speed = 1.0
variable_chamber_heater_filter_fan_speed = 1.0
variable_led_status_action = 0.0,1.0,1.0
variable_led_status_success = 0.0,1.0,0.0
variable_led_status_error = 1.0,0.0,1.0
variable_led_status_on = 1.0,1.0,1.0
variable_led_status_off = 0.0,0.0,1.0
variable_led_status_standby = 0.1,0.1,0.1
variable_led_status_heating = 1.0,0.0,0.0
variable_led_status_cooling = 0.0,0.0,1.0
variable_calibrate_bed_mesh = True
variable_adaptive_mesh = True
variable_start_print_park_in = "back"
variable_start_print_park_z_height = 50
variable_end_print_park_in = "back"
variable_pause_print_park_in = "back"
variable_end_print_park_z_hop = 20
variable_nozzle_priming = "primeblob"
variable_nozzle_prime_start_x = "max"
variable_nozzle_prime_start_y = "min"
variable_nozzle_prime_direction = "auto"
variable_nozzle_prime_bridge_fan = 102
variable_probe_for_priming_result = None
variable_probe_for_priming_end_result = None
variable_probe_for_priming_result_t1 = None
variable_probe_for_priming_end_result_t1 = None
variable_probe_for_priming_disable_mesh_constraints = False
variable_adaptive_prime_offset_threshold = -1.0
variable_last_z_offset = None
variable_runout_park_in = "front"
variable_enable_unload_tip_forming = False
variable_filament_unload_length = 150
description = RatOS variable storage macro, will echo variables to the console when run.
variable_relative_extrusion = True
variable_force_absolute_position = False
variable_preheat_extruder = True
variable_preheat_extruder_temp = 150
variable_macro_travel_speed = 600
variable_macro_travel_accel = 8000
variable_macro_z_speed = 15
variable_bed_margin_x = [59.8, 59.8]
variable_bed_margin_y = [14.35, 33.65]
variable_printable_x_min = 0
variable_printable_x_max = 0
variable_printable_y_min = 0
variable_printable_y_max = 0
variable_end_print_motors_off = True
variable_status_color_ok = "00FF00"
variable_status_color_error = "FF0000"
variable_status_color_unknown = "FFFF00"
variable_end_print_retract_filament = 10
gcode =
ECHO_RATOS_VARS
variable_auto_center_subject = False
variable_toolchange_zhop = 2.0
variable_toolchange_zspeed = 25
variable_toolchange_sync_fans = False
variable_toolchange_combined_zhop = False
variable_toolchange_travel_speed = 600
variable_toolchange_travel_accel = 8000
variable_toolchange_extrusion = 2.0
variable_toolchange_retraction = 2.0
variable_toolchange_feedrate = 7200
variable_toolchange_prepurging_timer = 0
variable_toolchange_standby_temp = -1
variable_toolchange_purge = 25
variable_toolchange_first_purge = 50
variable_beacon_bed_mesh_scv = 25
variable_beacon_contact_z_homing = False
variable_beacon_contact_start_print_true_zero = True
variable_beacon_contact_wipe_before_true_zero = True
variable_beacon_contact_true_zero_temp = 150
variable_beacon_contact_prime_probing = True
variable_beacon_contact_expansion_compensation = True
variable_beacon_contact_bed_mesh = False
variable_beacon_contact_bed_mesh_samples = 2
variable_beacon_contact_z_tilt_adjust = False
variable_beacon_contact_z_tilt_adjust_samples = 2
variable_beacon_scan_compensation_enable = True
variable_beacon_scan_compensation_profile = "Contact"
variable_beacon_scan_compensation_probe_count = 15,15
variable_beacon_contact_poke_bottom_limit = -1
variable_homing_x = "endstop"
variable_homing_y = "endstop"
variable_default_toolhead = 0
variable_adxl_chip = ["adxl345 toolboard_t0", "adxl345 toolboard_t1"]
variable_shaper_x_freq = [0, 0, 0, 0]
variable_shaper_y_freq = [0, 0, 0, 0]
variable_shaper_x_type = ["mzv", "mzv", "mzv", "mzv"]
variable_shaper_y_type = ["mzv", "mzv", "mzv", "mzv"]
variable_x_driver_types = ["tmc2209"]
variable_x_axes = ["x"]
variable_y_driver_types = ["tmc2209", "tmc2209"]
variable_y_axes = ["y", "y1"]
variable_z_driver_types = ["tmc2209", "tmc2209", "tmc2209"]
variable_z_axes = ["z", "z1", "z2"]
variable_home_y_first = True
[ratos_homing]
axes = xyz
z_hop = 15
z_hop_speed = 15
gcode =
_LED_ON
{% set prev_stop_on_error = printer["gcode_macro RatOS"].stowable_probe_stop_on_error %}
{% if printer["dual_carriage"] is defined %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set target_idex_mode = printer["dual_carriage"].carriage_1|lower %}
_IDEX_SINGLE
_SELECT_TOOL T={default_toolhead} TOOLSHIFT=false
{% endif %}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=stowable_probe_stop_on_error VALUE=True
M400
G90
{% set X = true if params.X is defined else false %}
{% set Y = true if params.Y is defined else false %}
{% set Z = true if params.Z is defined else false %}
{% if printer["gcode_macro RatOS"].home_y_first|default(false)|lower == 'true' %}
HOME_Y X={X} Y={Y} Z={Z}
HOME_X X={X} Y={Y} Z={Z}
{% else %}
HOME_X X={X} Y={Y} Z={Z}
HOME_Y X={X} Y={Y} Z={Z}
{% endif %}
HOME_Z X={X} Y={Y} Z={Z}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=stowable_probe_stop_on_error VALUE={prev_stop_on_error}
{% if printer["dual_carriage"] is defined %}
{% if target_idex_mode == "copy" %}
_IDEX_COPY
{% elif target_idex_mode == "mirror" %}
_IDEX_MIRROR
{% endif %}
{% endif %}
[gcode_macro HOME_X]
gcode =
{% set x_homed = 'x' in printer.toolhead.homed_axes %}
{% set homing = printer["gcode_macro RatOS"].homing|lower %}
{% set homing_x = printer["gcode_macro RatOS"].homing_x|lower %}
{% set homing_x = homing_x if homing_x else homing %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set X = true if params.X|lower == 'true' else false %}
{% set Y = true if params.Y|lower == 'true' else false %}
{% set Z = true if params.Z|lower == 'true' else false %}
DEBUG_ECHO PREFIX="HOME_X" MSG="printable_x_max: {printable_x_max}, safe_home_x: {safe_home_x}, axis_maximum.x: {printer.toolhead.axis_maximum.x}, bed_margin_x: {printer['gcode_macro RatOS'].bed_margin_x}"
{% if X or not Y and not Z %}
{% if homing_x == 'endstop' %}
G28 X
{% elif homing_x == 'sensorless' %}
{% if printer["dual_carriage"] is defined %}
{ action_emergency_stop("sensorless homing not supported on IDEX!") }
{% endif %}
HOME_X_SENSORLESS
{% else %}
{ action_emergency_stop("expected RatOS variable_homing_x to be 'sensorless' 'endstop' or variable_homing to be 'sensorless' or 'endstops' but found {} and {}".format(homing_x, homing)) }
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set parking_position = printer["gcode_macro T%s" % (0 if default_toolhead==1 else 1)].parking_position|float %}
SET_DUAL_CARRIAGE CARRIAGE={0 if default_toolhead==1 else 1} MODE=PRIMARY
G1 X{parking_position} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead} MODE=PRIMARY
{% endif %}
{% set x_homed = True %}
G0 X{safe_home_x} F{speed}
M400
{% endif %}
[gcode_macro HOME_Y]
gcode =
{% set y_homed = 'y' in printer.toolhead.homed_axes %}
{% set homing = printer["gcode_macro RatOS"].homing|lower %}
{% set homing_y = printer["gcode_macro RatOS"].homing_y|lower %}
{% set homing_y = homing_y if homing_y else homing %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set X = true if params.X|lower == 'true' else false %}
{% set Y = true if params.Y|lower == 'true' else false %}
{% set Z = true if params.Z|lower == 'true' else false %}
DEBUG_ECHO PREFIX="HOME_Y" MSG="printable_y_max: {printable_y_max}, safe_home_y: {safe_home_y}, axis_maximum.y: {printer.toolhead.axis_maximum.y}, bed_margin_y: {printer['gcode_macro RatOS'].bed_margin_y}"
{% if Y or not X and not Z %}
{% if homing_y == 'endstop' %}
G28 Y
{% elif homing_y == 'sensorless' %}
HOME_Y_SENSORLESS
{% else %}
{ action_emergency_stop("expected RatOS variable_homing_y to be 'sensorless' 'endstop' or variable_homing to be 'sensorless' or 'endstops' but found {} and {}".format(homing_y, homing)) }
{% endif %}
{% set y_homed = True %}
G0 Y{safe_home_y} F{speed}
{% endif %}
[gcode_macro HOME_Z]
gcode =
{% set x_homed = 'x' in printer.toolhead.homed_axes %}
{% set y_homed = 'y' in printer.toolhead.homed_axes %}
{% set z_probe = printer["gcode_macro RatOS"].z_probe %}
{% set beacon_contact_z_homing = true if printer["gcode_macro RatOS"].beacon_contact_z_homing|default(false)|lower == 'true' else false %}
{% set X = true if params.X|lower == 'true' else false %}
{% set Y = true if params.Y|lower == 'true' else false %}
{% set Z = true if params.Z|lower == 'true' else false %}
DEBUG_ECHO PREFIX="HOME_Z" MSG="x_homed: {x_homed}, y_homed: {y_homed}, z_probe: {z_probe}, beacon_contact_z_homing: {beacon_contact_z_homing}"
{% if Z or not Y and not X %}
RATOS_ECHO MSG="Homing Z"
{% if x_homed == False or y_homed == False %}
{ action_emergency_stop("X and Y must be homed before homing Z") }
{% else %}
{% if z_probe == "stowable" %}
DEPLOY_PROBE
_MOVE_TO_SAFE_Z_HOME
{% if printer.configfile.settings.beacon is defined and beacon_contact_z_homing %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
{% else %}
G28 Z
{% endif %}
_Z_HOP
STOW_PROBE
{% else %}
_MOVE_TO_SAFE_Z_HOME
{% if printer.configfile.settings.beacon is defined and beacon_contact_z_homing %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
{% else %}
G28 Z
{% endif %}
_Z_HOP
{% endif %}
{% endif %}
{% endif %}
[gcode_macro HOME_X_SENSORLESS]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="home_x_sensorless"
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
M204 S1000
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer["gcode_macro RatOS"].sensorless_x_current}
{% endif %}
G4 P300
G28 X
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].x_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer.configfile.config[x_driver].run_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].y_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer.configfile.config[y_driver].run_current}
{% endif %}
G4 P300
RESTORE_TOOLHEAD_SETTINGS KEY="home_x_sensorless"
[gcode_macro HOME_Y_SENSORLESS]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="home_y_sensorless"
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
M204 S1000
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer["gcode_macro RatOS"].sensorless_y_current}
{% endif %}
G4 P300
G28 Y
{% if printer["gcode_macro RatOS"].x_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].x_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].x_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set x_driver = printer["gcode_macro RatOS"].driver_type_x|lower ~ " stepper_x" %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer.configfile.config[x_driver].run_current}
{% endif %}
{% if printer["gcode_macro RatOS"].y_axes is defined %}
{% for axis in printer["gcode_macro RatOS"].y_axes %}
{% set stepper = "stepper_" ~ axis|lower %}
{% set stepper_driver = printer["gcode_macro RatOS"].y_driver_types[loop.index0] ~ " " ~ stepper %}
SET_TMC_CURRENT STEPPER={stepper} CURRENT={printer.configfile.config[stepper_driver].run_current}
{% endfor %}
{% else %}
{% set y_driver = printer["gcode_macro RatOS"].driver_type_y|lower ~ " stepper_y" %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer.configfile.config[y_driver].run_current}
{% endif %}
G4 P300
RESTORE_TOOLHEAD_SETTINGS KEY="home_y_sensorless"
[gcode_macro _Z_HOP]
description = Move Z axis up by Z_HOP distance at Z_HOP_SPEED. In relative mode it will move Z axis up by Z_HOP distance. In absolute mode it will move Z axis to Z_HOP distance.
gcode =
{% set z_hop = printer.configfile.config.ratos_homing.z_hop|float %}
{% set z_hop_speed = printer.configfile.config.ratos_homing.z_hop_speed|float * 60 %}
G0 Z{z_hop} F{z_hop_speed}
[gcode_macro _MOVE_TO_SAFE_Z_HOME]
description = Move to safe home position with optional Z_HOP (pass Z_HOP=True as parameter)
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% if params.Z_HOP is defined %}
_Z_HOP
{% endif %}
DEBUG_ECHO PREFIX="_MOVE_TO_SAFE_Z_HOME" MSG="axis_maximum.x: {printer.toolhead.axis_maximum.x}, axis_maximum.y: {printer.toolhead.axis_maximum.y}, bed_margin_x: {printer['gcode_macro RatOS'].bed_margin_x}, bed_margin_y: {printer['gcode_macro RatOS'].bed_margin_y}, safe_home_x: {safe_home_x}, safe_home_y: {safe_home_y}, printable_x_max: {printable_x_max}, printable_y_max: {printable_y_max}"
G0 X{safe_home_x} Y{safe_home_y} F{speed}
[gcode_macro MAYBE_HOME]
description = Only home unhomed axis
variable_is_kinematic_position_overriden = False
gcode =
{% if printer["gcode_macro MAYBE_HOME"].is_kinematic_position_overriden|lower == 'true' %}
RATOS_ECHO MSG="SET_CENTER_KINEMATIC_POSITION has been abused. Homing all axes. Please refrain from using SET_CENTER_KINEMATIC_POSITION outside of debugging purposes."
G28
SET_GCODE_VARIABLE MACRO=MAYBE_HOME VARIABLE=is_kinematic_position_overriden VALUE=False
{% else %}
{% set axes = '' %}
{% set isHomed = true %}
{% set axesToHome = '' %}
{% if params.X is defined %}
{% set axes = axes ~ 'X ' %}
{% if 'x' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'X ' %}
{% endif %}
{% endif %}
{% if params.Y is defined %}
{% set axes = axes ~ 'Y ' %}
{% if 'y' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Y ' %}
{% endif %}
{% endif %}
{% if params.Z is defined %}
{% set axes = axes ~ 'Z ' %}
{% if 'z' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Z ' %}
{% endif %}
{% endif %}
{% if params.X is not defined and params.Y is not defined and params.Z is not defined %}
{% set axes = '' %}
{% if 'x' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'X ' %}
{% endif %}
{% if 'y' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Y ' %}
{% endif %}
{% if 'z' not in printer.toolhead.homed_axes %}
{% set isHomed = false %}
{% set axesToHome = axesToHome ~ 'Z ' %}
{% endif %}
{% endif %}
{% if isHomed is false %}
RATOS_ECHO MSG="Homing {axesToHome}"
G28 {axesToHome}
{% else %}
RATOS_ECHO MSG="All requested axes already homed, skipping.."
{% endif %}
{% endif %}
[gcode_macro PID_CALIBRATE_HOTEND]
description = Perform a PID calibration test for a given extruder heater.
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set temp = params.TEMP|default(220)|int %}
DEBUG_ECHO PREFIX="PID_CALIBRATE_HOTEND" MSG="TEMP={temp}"
{% if printer["dual_carriage"] is not defined %}
RATOS_ECHO MSG="PID calibration hotend heater T0 at {temp}°C..."
PID_CALIBRATE HEATER=extruder TARGET={temp}
_CONSOLE_SAVE_CONFIG
{% else %}
{% if toolhead==0 or toolhead==1 %}
RATOS_ECHO MSG="PID calibration hotend heater T{toolhead} at {temp}°C..."
PID_CALIBRATE HEATER=extruder{'' if toolhead==0 else toolhead} TARGET={temp}
_CONSOLE_SAVE_CONFIG
{% else %}
RATOS_ECHO MSG="Please select toolhead! 0 = left, 1 = right toolhead"
{% endif %}
{% endif %}
_LEARN_MORE_CALIBRATION
[gcode_macro PID_CALIBRATE_BED]
description = Perform a PID calibration test for the bed heater.
gcode =
{% set temp = params.TEMP|default(80)|int %}
DEBUG_ECHO PREFIX="PID_CALIBRATE_BED" MSG="TEMP={temp}"
RATOS_ECHO MSG="PID calibration bed heater at {temp}°C..."
PID_CALIBRATE HEATER=heater_bed TARGET={temp}
_CONSOLE_SAVE_CONFIG
_LEARN_MORE_CALIBRATION
[gcode_macro PID_CALIBRATE_CHAMBER_HEATER]
description = Perform a PID calibration test for the chamber heater.
gcode =
{% set temp = params.TEMP|default(150)|int %}
DEBUG_ECHO PREFIX="PID_CALIBRATE_CHAMBER_HEATER" MSG="TEMP={temp}"
{% if printer["heater_generic chamber_heater"] is defined %}
RATOS_ECHO MSG="PID calibration chamber heater at {temp}°C..."
PID_CALIBRATE HEATER=chamber_heater TARGET={temp}
_CONSOLE_SAVE_CONFIG
_LEARN_MORE_CALIBRATION
{% else %}
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_heater" %}
{% set link_text = "RatOS Chamber Heater" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="No chamber heater found" TYPE="warning" MSG={line_1}
{% endif %}
[gcode_macro INITIALIZE_PA_TUNING]
description = Start a pressure advance tuning tower.
gcode =
{% set start = params.START|default(0.0)|float %}
{% set factor = params.FACTOR|default(0.001)|float %}
{% set layer_number = printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|default(0)|int %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% if is_printing_gcode and layer_number < 2 %}
DEBUG_ECHO PREFIX="START_PA_TOWER" MSG="START: {start}, FACTOR: {factor}"
RATOS_ECHO MSG="Starting presssure advance tuning tower..."
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START={start} FACTOR={factor}
{% endif %}
_LEARN_MORE_CALIBRATION
[gcode_macro CHAMBER_FILTER_ON]
gcode =
{% if printer["fan_generic filter"] is defined %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Activating chamber filter..."
_CHAMBER_FILTER_TURN_ON
{% else %}
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_filter" %}
{% set link_text = "RatOS Chamber Filter" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="No chamber filter found" TYPE="warning" MSG={line_1}
{% endif %}
[gcode_macro CHAMBER_FILTER_OFF]
gcode =
{% if printer["fan_generic filter"] is defined %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Deactivating chamber filter..."
_CHAMBER_FILTER_TURN_OFF
{% else %}
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_filter" %}
{% set link_text = "RatOS Chamber Filter" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="No chamber filter found" TYPE="warning" MSG={line_1}
{% endif %}
[gcode_macro _CHAMBER_FILTER_ON]
gcode =
{% set at = params.AT|default('')|lower %}
{% set chamber_filter_enable = true if printer["gcode_macro RatOS"].chamber_filter_enable|default(true)|lower == 'true' else false %}
{% set chamber_filter_enable_at = printer["gcode_macro RatOS"].chamber_filter_enable_at|default('after_print_start')|lower %}
DEBUG_ECHO PREFIX="_CHAMBER_FILTER_ON" MSG="at: {at}, chamber_filter_enable: {chamber_filter_enable}, chamber_filter_enable_at: {chamber_filter_enable_at}, chamber_filter_speed: {chamber_filter_speed}"
{% if chamber_filter_enable and printer["fan_generic filter"] is defined %}
{% if chamber_filter_enable_at == at %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Activating chamber filter..."
_CHAMBER_FILTER_TURN_ON AT={at}
{% if chamber_filter_enable_at == "print_end" %}
_LED_CHAMBER_FILTER_ON
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _CHAMBER_FILTER_OFF]
gcode =
{% set chamber_filter_enable = true if printer["gcode_macro RatOS"].chamber_filter_enable|default(true)|lower == 'true' else false %}
{% set filter_disable_period = printer["gcode_macro RatOS"].chamber_filter_disable_period|default(0)|int %}
{% set filter_disable_bed_temp = printer["gcode_macro RatOS"].chamber_filter_disable_bed_temp|default(0)|int %}
DEBUG_ECHO PREFIX="_CHAMBER_FILTER_OFF" MSG="chamber_filter_enable: {chamber_filter_enable}, filter_disable_period: {filter_disable_period}, filter_disable_bed_temp: {filter_disable_bed_temp}"
{% if chamber_filter_enable and printer["fan_generic filter"] is defined %}
{% if filter_disable_period > 0 %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Waiting {filter_disable_period} seconds before turning chamber filter off..."
UPDATE_DELAYED_GCODE ID=_CHAMBER_FILTER_OFF_TIMER DURATION={filter_disable_period}
{% endif %}
{% if filter_disable_bed_temp > 0 %}
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Waiting for bed temp to cool down to {filter_disable_bed_temp}°C to turn filter off..."
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=0 MAXIMUM={filter_disable_bed_temp}
_CHAMBER_FILTER_TURN_OFF
_LED_CHAMBER_FILTER_OFF
{% endif %}
{% endif %}
[delayed_gcode _CHAMBER_FILTER_OFF_TIMER]
gcode =
DEBUG_ECHO PREFIX="_CHAMBER_FILTER_OFF_TIMER" MSG="executed"
_CHAMBER_FILTER_TURN_OFF
RATOS_ECHO PREFIX="CHAMBER_FILTER" MSG="Chamber filter turned off!"
_LED_CHAMBER_FILTER_OFF
[gcode_macro _CHAMBER_FILTER_TURN_ON]
gcode =
{% set at = params.AT|default('')|lower %}
{% set chamber_filter_speed = printer["gcode_macro RatOS"].chamber_filter_speed|default(0)|float %}
{% if at == "print_end" %}
{% set chamber_filter_speed = printer["gcode_macro RatOS"].chamber_filter_disable_speed|default(0)|float %}
{% endif %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_FILTER_OFF_TIMER DURATION=0
SET_FAN_SPEED FAN=filter SPEED={chamber_filter_speed}
[gcode_macro _CHAMBER_FILTER_TURN_OFF]
gcode =
SET_FAN_SPEED FAN=filter SPEED=0
[gcode_macro _CHAMBER_FILTER_SANITY_CHECK]
gcode =
{% set chamber_filter_enable = true if printer["gcode_macro RatOS"].chamber_filter_enable|default(true)|lower == 'true' else false %}
{% set filter_disable_period = printer["gcode_macro RatOS"].chamber_filter_disable_period|default(0)|int %}
{% set filter_disable_bed_temp = printer["gcode_macro RatOS"].chamber_filter_disable_bed_temp|default(0)|int %}
{% if chamber_filter_enable and printer["fan_generic filter"] is defined %}
{% if filter_disable_bed_temp > 0 and filter_disable_period > 0 %}
_LEARN_MORE_CHAMBER_FILTER
{action_respond_info("Wrong chamber filter options configured! Set 'filter_disable_bed_temp' or 'filter_disable_period' variable, not both.")}
{% endif %}
{% if filter_disable_bed_temp == 0 and filter_disable_period == 0 %}
_LEARN_MORE_CHAMBER_FILTER
{action_respond_info("Wrong chamber filter options configured! Set 'filter_disable_bed_temp' or 'filter_disable_period' variable.")}
{% endif %}
{% endif %}
[gcode_macro CHAMBER_HEATER_ON]
gcode =
{% set chamber_temp = params.CHAMBER_TEMP|default(45)|int %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp} IS_FROM_START_PRINT=False
[gcode_macro CHAMBER_HEATER_OFF]
gcode =
_CHAMBER_HEATER_OFF
[gcode_macro _CHAMBER_HEATER_ON]
variable_chamber_temp = 0
gcode =
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set start_chamber_temp = params.START_CHAMBER_TEMP|default(0)|int %}
{% set is_from_start_print = true if params.IS_FROM_START_PRINT|default(True)|lower == 'true' else false %}
{% set z = printer["gcode_macro RatOS"].start_print_park_z_height|float %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set chamber_heater_enable = true if printer["gcode_macro RatOS"].chamber_heater_enable|default(true)|lower == 'true' else false %}
{% set chamber_heater_bed_temp = printer["gcode_macro RatOS"].chamber_heater_bed_temp|default(115)|int %}
{% set chamber_heater_preheating_temp = printer["gcode_macro RatOS"].chamber_heater_preheating_temp|default(150)|int %}
{% set chamber_heater_heating_temp_offset = printer["gcode_macro RatOS"].chamber_heater_heating_temp_offset|default(20)|int %}
{% set chamber_heater_control_external_heater = true if printer["gcode_macro RatOS"].chamber_heater_control_external_heater|default(true)|lower == 'true' else false %}
{% set chamber_heater_air_circulation_enable = true if printer["gcode_macro RatOS"].chamber_heater_air_circulation_enable|default(true)|lower == 'true' else false %}
{% set chamber_heater_air_circulation_fan_speed = printer["gcode_macro RatOS"].chamber_heater_air_circulation_fan_speed|default(0.35)|float %}
{% set chamber_heater_air_circulation_y_pos = printer["gcode_macro RatOS"].chamber_heater_air_circulation_y_pos|default(0)|float %}
{% set chamber_heater_air_circulation_z_pos = printer["gcode_macro RatOS"].chamber_heater_air_circulation_z_pos|default(100)|float %}
DEBUG_ECHO PREFIX="_CHAMBER_HEATER_ON" MSG="chamber_heater_enable: {chamber_heater_enable}, chamber_heater_preheating_temp: {chamber_heater_preheating_temp}, chamber_heater_heating_temp_offset: {chamber_heater_heating_temp_offset}, bed_temp: {bed_temp}, chamber_temp: {chamber_temp}, start_chamber_temp: {start_chamber_temp}"
{% if chamber_heater_enable and chamber_temp > 0 and chamber_heater_bed_temp > 0 %}
_LED_HEATING
RATOS_ECHO MSG="Preheating chamber to {(start_chamber_temp if start_chamber_temp > 0 else chamber_temp)}°C..."
{% set chamber_temp_sensor = "extruder" %}
{% if printer["dual_carriage"] is defined and default_toolhead == 1 %}
{% set chamber_temp_sensor = "extruder1" %}
{% endif %}
{% if printer["temperature_sensor chamber"] is defined %}
{% set chamber_temp_sensor = "temperature_sensor chamber" %}
{% endif %}
{% set current_chamber_temp = printer['%s' % chamber_temp_sensor].temperature|int %}
{% set needs_heating = current_chamber_temp < (start_chamber_temp if start_chamber_temp > 0 else chamber_temp) %}
{% if needs_heating %}
_USER_CHAMBER_HEATER_BEFORE_PREHEATING
{% endif %}
{% if needs_heating %}
{% if chamber_heater_air_circulation_enable and chamber_heater_air_circulation_fan_speed > 0 %}
{% if not is_from_start_print %}
MAYBE_HOME
{% endif %}
G0 Z{chamber_heater_air_circulation_z_pos} F{z_speed}
G0 Y{chamber_heater_air_circulation_y_pos} F{speed}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={chamber_heater_air_circulation_fan_speed if default_toolhead == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={chamber_heater_air_circulation_fan_speed if default_toolhead == 1 else 0}
{% else %}
M106 S{(255 * chamber_heater_air_circulation_fan_speed)}
{% endif %}
{% else %}
{% if is_from_start_print %}
G0 Z{z} F{z_speed}
{% endif %}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=_CHAMBER_HEATER_ON VARIABLE=chamber_temp VALUE={chamber_temp}
{% if needs_heating %}
M140 S{chamber_heater_bed_temp}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET={chamber_heater_preheating_temp}
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=1.0
{% endif %}
{% endif %}
{% if needs_heating %}
_CHAMBER_HEATER_EXTRA_FAN_ON
{% endif %}
{% if needs_heating %}
TEMPERATURE_WAIT SENSOR="{chamber_temp_sensor}" MINIMUM={(start_chamber_temp if start_chamber_temp > 0 else chamber_temp)}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET={(chamber_temp + chamber_heater_heating_temp_offset)}
{% endif %}
{% endif %}
{% if printer["fan_generic filter"] is defined %}
{% if printer["gcode_macro RatOS"].chamber_heater_filter_fan_speed|default(0)|float > 0 %}
SET_FAN_SPEED FAN=filter SPEED=0
_CHAMBER_FILTER_ON AT="before_print_start"
{% endif %}
{% endif %}
{% if needs_heating %}
{% if chamber_heater_air_circulation_enable and chamber_heater_air_circulation_fan_speed > 0 %}
G28 Z
{% endif %}
{% endif %}
{% if needs_heating %}
_USER_CHAMBER_HEATER_AFTER_PREHEATING
{% endif %}
{% if printer["temperature_sensor chamber"] is defined %}
{% if printer["heater_generic chamber_heater"] is defined %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=5
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined and chamber_heater_control_external_heater %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=5
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
{% else %}
M106 S0
{% endif %}
_LED_SUCCESS
{% endif %}
[gcode_macro _CHAMBER_HEATER_OFF]
gcode =
RATOS_ECHO MSG="Deactivating chamber heater..."
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=0
SET_GCODE_VARIABLE MACRO=_CHAMBER_HEATER_ON VARIABLE=chamber_temp VALUE=0
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET=0
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=0.0
{% endif %}
_CHAMBER_HEATER_EXTRA_FAN_OFF
[delayed_gcode _CHAMBER_HEATER_CONTROL]
initial_duration = 0.
gcode =
{% set chamber_temp = printer["gcode_macro _CHAMBER_HEATER_ON"].chamber_temp|default(0)|int %}
{% set chamber_heater_heating_temp_offset = printer["gcode_macro RatOS"].chamber_heater_heating_temp_offset|default(20)|int %}
{% set current_chamber_temp = printer['temperature_sensor chamber'].temperature|int %}
{% if current_chamber_temp < chamber_temp %}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET={(chamber_temp + chamber_heater_heating_temp_offset)}
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=1.0
{% endif %}
{% endif %}
{% if current_chamber_temp >= chamber_temp %}
{% if printer["heater_generic chamber_heater"] is defined %}
SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET=0
{% endif %}
{% if printer["output_pin chamber_heater_pin"] is defined %}
SET_PIN PIN=chamber_heater_pin VALUE=0.0
{% endif %}
{% endif %}
UPDATE_DELAYED_GCODE ID=_CHAMBER_HEATER_CONTROL DURATION=5
[gcode_macro _CHAMBER_HEATER_EXTRA_FAN_ON]
gcode =
{% set chamber_heater_extra_fan_speed = printer["gcode_macro RatOS"].chamber_heater_extra_fan_speed|default(0.0)|float %}
{% if printer["fan_generic chamber_heater_extra_fan"] is defined %}
{% if chamber_heater_extra_fan_speed > 0 %}
SET_FAN_SPEED FAN=chamber_heater_extra_fan SPEED={chamber_heater_extra_fan_speed}
{% endif %}
{% endif %}
[gcode_macro _CHAMBER_HEATER_EXTRA_FAN_OFF]
gcode =
{% if printer["fan_generic chamber_heater_extra_fan"] is defined %}
SET_FAN_SPEED FAN=chamber_heater_extra_fan SPEED=0
{% endif %}
[gcode_macro _USER_CHAMBER_HEATER_BEFORE_PREHEATING]
description = Will be executed before chamber preheating, only if heating is needed.
gcode =
[gcode_macro _USER_CHAMBER_HEATER_AFTER_PREHEATING]
description = Will be executed after chamber preheating, only if heating was needed.
gcode =
[gcode_macro _LED_START_PRINTING]
gcode =
_LED_ACTION
[gcode_macro _LED_START_PRINTING_ERROR]
gcode =
_LED_ERROR
[gcode_macro _LED_PRINTING]
gcode =
_LED_ON TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_PAUSE]
gcode =
_LED_ACTION
[gcode_macro _LED_CHAMBER_FILTER_ON]
gcode =
_LED_ACTION
[gcode_macro _LED_CHAMBER_FILTER_OFF]
gcode =
_LED_STANDBY
[gcode_macro _LED_LOADING_FILAMENT]
gcode =
_LED_ACTION TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_LOADED]
gcode =
_LED_SUCCESS TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_RUNOUT]
gcode =
_LED_ERROR TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_CLOG]
gcode =
_LED_ERROR TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_UNLOADING_FILAMENT]
gcode =
_LED_ACTION TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_FILAMENT_UNLOADED]
gcode =
_LED_SUCCESS TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_DEACTIVATE_TOOLHEAD]
gcode =
_LED_OFF TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_TOOLHEAD_STANDBY]
gcode =
_LED_STANDBY TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_TOOLHEAD_WAKEUP]
gcode =
_LED_ACTION TOOLHEAD={params.TOOLHEAD|default(-1)|int}
[gcode_macro _LED_MOTORS_OFF]
gcode =
_LED_STANDBY
_LED_VAOC_OFF
[gcode_macro _LED_INPUT_SHAPER_START]
gcode =
_LED_ACTION
[gcode_macro _LED_INPUT_SHAPER_END]
gcode =
_LED_ON
[gcode_macro _LED_BEACON_CALIBRATION_START]
gcode =
_LED_ACTION
[gcode_macro _LED_BEACON_CALIBRATION_END]
gcode =
_LED_ON
[gcode_macro _LED_BEACON_CALIBRATION_ERROR]
gcode =
_LED_ERROR
[gcode_macro _LED_VAOC_ON]
gcode =
{% if printer['neopixel vaoc_led'] is defined %}
SET_LED LED=vaoc_led RED=1.0 GREEN=1.0 BLUE=1.0
{% endif %}
[gcode_macro _LED_VAOC_OFF]
gcode =
{% if printer['neopixel vaoc_led'] is defined %}
SET_LED LED=vaoc_led RED=0.0 GREEN=0.0 BLUE=0.0
{% endif %}
[gcode_macro _LED_ACTION]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_action %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_SUCCESS]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_success %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_HEATING]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_heating %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_COOLING]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_cooling %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_ERROR]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_error %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_ON]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_on %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_OFF]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_off %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_STANDBY]
gcode =
{% set rgb = printer["gcode_macro RatOS"].led_status_standby %}
_LED_SET TOOLHEAD={params.TOOLHEAD|default(-1)|int} R={rgb[0]} G={rgb[1]} B={rgb[2]}
[gcode_macro _LED_SET]
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set r = params.R|default(0)|float %}
{% set g = params.G|default(0)|float %}
{% set b = params.B|default(0)|float %}
{% if toolhead >= 0 %}
{% if printer['neopixel nozzle_led_t%s' % toolhead] is defined %}
SET_LED LED={'nozzle_led_t%s' % toolhead} RED={r} GREEN={g} BLUE={b} SYNC=0
{% endif %}
{% else %}
{% if printer['neopixel nozzle_led_t0'] is defined %}
SET_LED LED={'nozzle_led_t0'} RED={r} GREEN={g} BLUE={b} SYNC=0
{% endif %}
{% if printer['neopixel nozzle_led_t1'] is defined %}
SET_LED LED={'nozzle_led_t1'} RED={r} GREEN={g} BLUE={b} SYNC=0
{% endif %}
{% endif %}
_USER_LED_SET { rawparams }
[gcode_macro _USER_LED_SET]
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set r = params.R|default(0)|float %}
{% set g = params.G|default(0)|float %}
{% set b = params.B|default(0)|float %}
[gcode_macro LOAD_FILAMENT]
description = Loads new filament. Note: be careful with PETG, make sure you inspect the tip of your filament before loading to avoid jams.
variable_ignore_min_extrude_temp = True
gcode =
_LEARN_MORE_FILAMENT
{% set temp = params.TEMP|default(220)|int %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set filament_name = params._NAME|default('')|string %}
{% set filament_type = params._TYPE|default('')|string %}
{% if filament_name == '' or filament_type == '' %}
{% set filament_name = 'unknown' %}
{% set filament_type = 'unknown' %}
{% endif %}
{% if printer["dual_carriage"] is not defined %}
_DEFAULT_LOAD_FILAMENT TEMP={temp} NAME={filament_name} TYPE={filament_type}
{% else %}
{% if not printer.pause_resume.is_paused %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Loading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
{% set paused_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% if paused_idex_mode == 'copy' or paused_idex_mode == 'mirror' %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set toolhead = printer["gcode_macro PAUSE"].idex_toolhead|int %}
{% endif %}
{% endif %}
{% endif %}
{% if toolhead==0 or toolhead==1 %}
_IDEX_LOAD_FILAMENT TEMP={temp} TOOLHEAD={toolhead} NAME={filament_name} TYPE={filament_type}
{% else %}
RATOS_ECHO MSG="Please select toolhead! 0 = left, 1 = right toolhead"
{% endif %}
{% endif %}
[gcode_macro _DEFAULT_LOAD_FILAMENT]
description = Load filament macro for non IDEX printers.
gcode =
{% set temp = params.TEMP|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set color_ok = printer["gcode_macro RatOS"].status_color_ok|string %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_DEFAULT_LOAD_FILAMENT" MSG="TEMP={temp}"
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_unknown}"'
_LED_LOADING_FILAMENT TOOLHEAD=0
SAVE_GCODE_STATE NAME=load_state
{% if printer.extruder.temperature|int < temp or printer.extruder.can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating extruder to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={temp}
_LOAD_FILAMENT TOOLHEAD=0
RESTORE_GCODE_STATE NAME=load_state
{% if filament_name != '' and filament_type != '' %}
SAVE_VARIABLE VARIABLE=t0_filament VALUE="('{filament_type}', '{filament_name}', {temp})"
{% if printer["gcode_macro T0"].filament_name is defined and printer["gcode_macro T0"].filament_type is defined and printer["gcode_macro T0"].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='"{filament_name}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='"{filament_type}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE={temp}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_ok}"'
_LED_FILAMENT_LOADED TOOLHEAD=0
[gcode_macro _IDEX_LOAD_FILAMENT]
description = Load filament macro for IDEX printer.
gcode =
{% set temp = params.TEMP|int %}
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set color_ok = printer["gcode_macro RatOS"].status_color_ok|string %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_IDEX_LOAD_FILAMENT" MSG="TEMP: {temp}, TOOLHEAD: {toolhead}"
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_unknown}"'
_LED_LOADING_FILAMENT TOOLHEAD={toolhead}
{% if "xyz" not in printer.toolhead.homed_axes %}
_SELECT_TOOL T={toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% set target_extruder = 'extruder%s' % ('' if toolhead == 0 else toolhead) %}
ACTIVATE_EXTRUDER EXTRUDER={target_extruder}
{% if not printer.pause_resume.is_paused %}
{% if printer[target_extruder].temperature|int < temp or printer[target_extruder].can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating T{toolhead} to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={temp}
{% endif %}
_LOAD_FILAMENT TOOLHEAD={toolhead} TEMP={temp}
{% if filament_name != '' and filament_type != '' %}
SAVE_VARIABLE VARIABLE=t{toolhead}_filament VALUE="('{filament_type}', '{filament_name}', {temp})"
{% if printer["gcode_macro T%s" % toolhead].filament_name is defined and printer["gcode_macro T%s" % toolhead].filament_type is defined and printer["gcode_macro T%s" % toolhead].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_name VALUE='"{filament_name}"'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_type VALUE='"{filament_type}"'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_temp VALUE={temp}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_ok}"'
_LED_FILAMENT_LOADED TOOLHEAD={toolhead}
[gcode_macro _LOAD_FILAMENT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_LOAD_FILAMENT" MSG="TOOLHEAD: {toolhead}"
_MOVE_TO_LOADING_POSITION TOOLHEAD={toolhead}
_LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE TOOLHEAD={toolhead}
_LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE TOOLHEAD={toolhead}
_CLEANING_MOVE TOOLHEAD={toolhead}
[gcode_macro _LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set extruder_load_speed = printer["gcode_macro T%s" % toolhead].extruder_load_speed|float * 60 %}
{% set extruder_gear_to_cooling_position_distance = printer["gcode_macro T%s" % toolhead].extruder_gear_to_cooling_position_distance|float %}
DEBUG_ECHO PREFIX="_LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE" MSG="TOOLHEAD: {toolhead}"
RATOS_ECHO MSG="Loading filament into hotend.."
G92 E0
G0 E{extruder_gear_to_cooling_position_distance} F{extruder_load_speed}
G92 E0
M400
RATOS_ECHO MSG="Filament loaded into hotend."
[gcode_macro _LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set load_speed = printer["gcode_macro T%s" % toolhead].filament_load_speed|float * 60 %}
{% set filament_loading_nozzle_offset = printer["gcode_macro T%s" % toolhead].filament_loading_nozzle_offset|float %}
{% set cooling_position_to_nozzle_distance = printer["gcode_macro T%s" % toolhead].cooling_position_to_nozzle_distance|float %}
{% set purge_after_load = printer["gcode_macro T%s" % toolhead].purge_after_load|float %}
DEBUG_ECHO PREFIX="_LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE" MSG="TOOLHEAD: {toolhead}"
RATOS_ECHO MSG="Loading filament into nozzle... Please wait!"
G92 E0
G0 E{cooling_position_to_nozzle_distance + filament_loading_nozzle_offset} F{load_speed}
G92 E0
G4 P1000
_PURGE_FILAMENT TOOLHEAD={toolhead} E={purge_after_load}
RATOS_ECHO MSG="Filament loaded into nozzle!"
[gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT" MSG="TOOLHEAD: {toolhead}"
{% set filament_grabbing_length = printer["gcode_macro T%s" % toolhead].filament_grabbing_length|float %}
{% set filament_grabbing_speed = printer["gcode_macro T%s" % toolhead].filament_grabbing_speed|float %}
{% set resume_after_insert = true if printer["gcode_macro T%s" % toolhead].resume_after_insert|default(true)|lower == 'true' else false %}
{% set enable_insert_detection = true if printer["gcode_macro T%s" % toolhead].enable_insert_detection|default(true)|lower == 'true' else false %}
{% set current_idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% if enable_insert_detection %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT" MSG="toolhead: {toolhead}, filament_grabbing_length: {filament_grabbing_length}, filament_grabbing_speed: {filament_grabbing_speed}, current_idex_mode: {current_idex_mode}"
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Loading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
FORCE_MOVE STEPPER={'extruder%s' % ('' if toolhead == 0 else toolhead)} DISTANCE={filament_grabbing_length} VELOCITY={filament_grabbing_speed}
M400
{% if printer.pause_resume.is_paused %}
LOAD_FILAMENT TOOLHEAD={toolhead}
{% if resume_after_insert %}
RESUME
{% endif %}
{% else %}
{% if not printer.virtual_sdcard.is_active %}
LOAD_FILAMENT TOOLHEAD={toolhead}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_INSERT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_ON_BOWDEN_FILAMENT_SENSOR_INSERT" MSG="TOOLHEAD: {toolhead}"
[gcode_macro _PURGE_BEFORE_UNLOAD]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set purge_before_unload = printer["gcode_macro T%s" % toolhead].purge_before_unload|float %}
DEBUG_ECHO PREFIX="_PURGE_BEFORE_UNLOAD" MSG="TOOLHEAD: {toolhead}"
{% if purge_before_unload > 0 %}
G92 E0
G0 E{purge_before_unload} F300
G92 E0
M400
{% endif %}
[gcode_macro _PURGE_FILAMENT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set e = params.E|int %}
{% set r = params.R|default(0)|int %}
DEBUG_ECHO PREFIX="_PURGE_FILAMENT" MSG="TOOLHEAD: {toolhead}, E: {e}"
{% if e > 0 %}
G92 E0
G0 E{e} F300
G92 E0
M400
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={0.4 if toolhead == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={0.4 if toolhead == 1 else 0}
{% else %}
M106 S{(255 * 0.4)}
{% endif %}
{% endif %}
G4 P3000
{% if r > 0 %}
G92 E0
G0 E-{r} F300
G92 E0
M400
{% endif %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["dual_carriage"] is defined %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
{% else %}
M106 S0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _MOVE_TO_PARKING_POSITION]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_MOVE_TO_PARKING_POSITION" MSG="TOOLHEAD: {toolhead}"
{% if printer["dual_carriage"] is defined or printer["rmmu_hub"] is defined %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["gcode_macro T%s" % toolhead].has_oozeguard|default(false)|lower == 'true' %}
{% if printer["gcode_macro T%s" % toolhead].parking_position is defined %}
{% set parking_position = printer["gcode_macro T%s" % toolhead].parking_position|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
G1 X{parking_position} F{speed}
M400
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _MOVE_TO_LOADING_POSITION]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_MOVE_TO_LOADING_POSITION" MSG="TOOLHEAD: {toolhead}"
{% if printer["dual_carriage"] is defined or printer["rmmu_hub"] is defined %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["gcode_macro T%s" % toolhead].has_oozeguard|default(false)|lower == 'true' %}
{% if printer["gcode_macro T%s" % toolhead].loading_position is defined %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% if act_t == toolhead %}
{% set loading_position = printer["gcode_macro T%s" % toolhead].loading_position|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
G1 X{loading_position} F{speed}
M400
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _CLEANING_MOVE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% if printer["dual_carriage"] is defined or printer["rmmu_hub"] is defined %}
{% if "xyz" in printer.toolhead.homed_axes %}
{% if printer["gcode_macro T%s" % toolhead].has_oozeguard|default(false)|lower == 'true' %}
{% if printer["gcode_macro T%s" % toolhead].parking_position is defined and printer["gcode_macro T%s" % toolhead].loading_position is defined %}
{% set loading_position = printer["gcode_macro T%s" % toolhead].loading_position|float %}
{% set parking_position = printer["gcode_macro T%s" % toolhead].parking_position|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set cleaning_position = loading_position %}
{% if loading_position == parking_position %}
{% if loading_position > 0 %}
{% set cleaning_position = loading_position - 30 %}
{% else %}
{% set cleaning_position = loading_position + 30 %}
{% endif %}
{% endif %}
G1 X{parking_position} F{speed}
G1 X{cleaning_position} F{speed}
G1 X{parking_position} F{speed}
G1 X{cleaning_position} F{speed}
G1 X{parking_position} F{speed}
M400
{% endif %}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _START_PRINT_BED_MESH]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="start_print_bed_mesh"
SET_MACRO_TRAVEL_SETTINGS
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set X=[params.X0|default(-1)|float, params.X1|default(-1)|float] %}
{% set Y=[params.Y0|default(-1)|float, params.Y1|default(-1)|float] %}
DEBUG_ECHO PREFIX="_START_PRINT_BED_MESH" MSG="idex_mode: {idex_mode}, X: {X}, Y: {Y}"
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set X=[0, printable_x_max] %}
{% endif %}
{% set beacon_bed_mesh_scv = printer["gcode_macro RatOS"].beacon_bed_mesh_scv|default(25)|int %}
{% set beacon_contact_bed_mesh_samples = printer["gcode_macro RatOS"].beacon_contact_bed_mesh_samples|default(2)|int %}
{% set beacon_contact_bed_mesh = true if printer["gcode_macro RatOS"].beacon_contact_bed_mesh|default(false)|lower == 'true' else false %}
{% if printer.configfile.settings.beacon is defined and not beacon_contact_bed_mesh %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={beacon_bed_mesh_scv}
{% endif %}
{% set default_profile = printer["gcode_macro RatOS"].bed_mesh_profile|default('ratos') %}
{% if printer["gcode_macro RatOS"].calibrate_bed_mesh|lower == 'true' %}
BED_MESH_CLEAR
{% if printer["gcode_macro RatOS"].adaptive_mesh|lower == 'true' %}
CALIBRATE_ADAPTIVE_MESH PROFILE={default_profile} X0={X[0]} X1={X[1]} Y0={Y[0]} Y1={Y[1]} T={params.T|int} BOTH_TOOLHEADS={params.BOTH_TOOLHEADS} IDEX_MODE={idex_mode}
{% else %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile}
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% endif %}
BED_MESH_PROFILE LOAD={default_profile}
{% elif printer["gcode_macro RatOS"].bed_mesh_profile is defined %}
BED_MESH_CLEAR
BED_MESH_PROFILE LOAD={printer["gcode_macro RatOS"].bed_mesh_profile}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="start_print_bed_mesh"
[gcode_macro CALIBRATE_ADAPTIVE_MESH]
gcode =
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_contact_bed_mesh_samples = printer["gcode_macro RatOS"].beacon_contact_bed_mesh_samples|default(2)|int %}
{% set beacon_contact_bed_mesh = true if printer["gcode_macro RatOS"].beacon_contact_bed_mesh|default(false)|lower == 'true' else false %}
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set default_profile = params.PROFILE %}
{% set x0 = params.X0|default(-1)|float %}
{% set y0 = params.Y0|default(-1)|float %}
{% set x1 = params.X1|default(-1)|float %}
{% set y1 = params.Y1|default(-1)|float %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Recieved coordinates X0={x0} Y0={y0} X1={x1} Y1={y1}"
{% if x0 >= x1 or y0 >= y1 %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Invalid coordinates received. Please check your slicer settings. Falling back to full bed mesh."
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile}
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% else %}
{% set mesh_config = printer.configfile.config.bed_mesh %}
{% set min_x = mesh_config.mesh_min.split(",")[0]|float %}
{% set min_y = mesh_config.mesh_min.split(",")[1]|float %}
{% set max_x = mesh_config.mesh_max.split(",")[0]|float %}
{% set max_y = mesh_config.mesh_max.split(",")[1]|float %}
{% set mesh_x0 = [[x0, max_x]|min, min_x]|max %}
{% set mesh_y0 = [[y0, max_y]|min, min_y]|max %}
{% set mesh_x1 = [[x1, max_x]|min, min_x]|max %}
{% set mesh_y1 = [[y1, max_y]|min, min_y]|max %}
{% if mesh_x0 == min_x and mesh_y0 == min_y and mesh_x1 == max_x and mesh_y1 == max_y %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Print is using the full bed, falling back to full bed mesh."
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile}
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% else %}
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
DEPLOY_PROBE
{% endif %}
{% set probe_count_x = mesh_config.probe_count.split(",")[0]|int %}
{% if mesh_config.probe_count.split(",")|length == 2 %}
{% set probe_count_y = mesh_config.probe_count.split(",")[1]|int %}
{% else %}
{% set probe_count_y = mesh_config.probe_count.split(",")[0]|int %}
{% endif %}
{% set probe_x_step = (max_x - min_x) / probe_count_x %}
{% set probe_y_step = (max_y - min_y) / probe_count_y %}
{% set mesh_count_x = ([(mesh_x1 - mesh_x0) / probe_x_step, 3]|max)|int %}
{% set mesh_count_y = ([(mesh_y1 - mesh_y0) / probe_y_step, 3]|max)|int %}
{% set min_mesh_count = [mesh_count_x, mesh_count_y]|min %}
{% set max_mesh_count = [mesh_count_x, mesh_count_y]|max %}
{% set algorithm = mesh_config.algorithm %}
{% if algorithm|lower == 'lagrange' and max_mesh_count > 6 %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="cannot exceed a probe_count of 6 when using lagrange interpolation. Falling back to bicubic interpolation."
{% set algorithm = 'bicubic' %}
{% endif %}
{% if algorithm|lower == 'bicubic' and min_mesh_count < 4 %}
{% if max_mesh_count > 6 %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="invalid probe_count option when using bicubic interpolation. Combination of 3 points on one axis with more than 6 on another is not permitted. Forcing minimum mesh count to be 4."
{% set min_mesh_count = 4 %}
{% else %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="bicubic interpolation with a probe_count of less than 4 points detected. Forcing lagrange interpolation."
{% set algorithm = 'lagrange' %}
{% endif %}
{% endif %}
{% set mesh_count_x = ([min_mesh_count, mesh_count_x]|max)|int %}
{% set mesh_count_x = ([max_mesh_count, mesh_count_x]|min)|int %}
{% set mesh_count_y = ([min_mesh_count, mesh_count_y]|max)|int %}
{% set mesh_count_y = ([max_mesh_count, mesh_count_y]|min)|int %}
{% set should_prime = printer["gcode_macro RatOS"].nozzle_priming == 'primeblob' %}
{% if printer["dual_carriage"] is not defined %}
{% set probe_first = printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == "min" or printer["gcode_macro RatOS"].nozzle_prime_start_y|float(printable_y_max) < printable_y_max / 2 %}
{% else %}
{% set probe_first = printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == "min" or printer["gcode_macro RatOS"].nozzle_prime_start_y|float(printable_y_max) < printable_y_max / 2 %}
{% endif %}
{% if printer.configfile.settings.beacon is defined and printer.configfile.settings.beacon.mesh_runs % 2 != 0 and probe_first %}
{% set probe_first = false %}
{% elif printer.configfile.settings.beacon is defined and printer.configfile.settings.beacon.mesh_runs % 2 == 0 and not probe_first %}
{% set probe_first = true %}
{% endif %}
{% if should_prime and probe_first %}
{% if printer["dual_carriage"] is not defined %}
PROBE_FOR_PRIMING
{% else %}
{% if both_toolheads %}
PROBE_FOR_PRIMING TOOLHEAD=0 IDEX_MODE={idex_mode}
PROBE_FOR_PRIMING TOOLHEAD=1 IDEX_MODE={idex_mode}
{% else %}
PROBE_FOR_PRIMING TOOLHEAD={params.T|int} IDEX_MODE={idex_mode}
{% endif %}
{% endif %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="mesh coordinates X0={mesh_x0} Y0={mesh_y0} X1={mesh_x1} Y1={mesh_y1}"
{% if printer.configfile.settings.beacon is defined and beacon_contact_bed_mesh %}
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES={beacon_contact_bed_mesh_samples} PROFILE={default_profile} ALGORITHM={algorithm} MESH_MIN={mesh_x0},{mesh_y0} MESH_MAX={mesh_x1},{mesh_y1} PROBE_COUNT={mesh_count_x},{mesh_count_y} RELATIVE_REFERENCE_INDEX=-1
{% else %}
BED_MESH_CALIBRATE PROFILE={default_profile} ALGORITHM={algorithm} MESH_MIN={mesh_x0},{mesh_y0} MESH_MAX={mesh_x1},{mesh_y1} PROBE_COUNT={mesh_count_x},{mesh_count_y} RELATIVE_REFERENCE_INDEX=-1
{% if printer.configfile.settings.beacon is defined %}
_BEACON_APPLY_SCAN_COMPENSATION
{% endif %}
{% endif %}
{% if should_prime and not probe_first %}
{% if printer["dual_carriage"] is not defined %}
PROBE_FOR_PRIMING
{% else %}
{% if both_toolheads %}
PROBE_FOR_PRIMING TOOLHEAD=0 IDEX_MODE={idex_mode}
PROBE_FOR_PRIMING TOOLHEAD=1 IDEX_MODE={idex_mode}
{% else %}
PROBE_FOR_PRIMING TOOLHEAD={params.T|int} IDEX_MODE={idex_mode}
{% endif %}
{% endif %}
{% endif %}
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
STOW_PROBE
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M84]
rename_existing = M84.1
gcode =
M84.1
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
{% if printer["dual_carriage"] is defined %}
_SET_TOOLHEAD_OFFSET T={printer["gcode_macro RatOS"].default_toolhead|int} MOVE=0
SET_GCODE_VARIABLE MACRO=SET_PRESSURE_ADVANCE VARIABLE=snyc_toolheads VALUE=False
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE=False
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% if printer["gcode_macro _VAOC"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started VALUE=False
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started_at_temp VALUE=False
{% endif %}
SET_GCODE_OFFSET X=0 Y=0 Z=0 MOVE=0
_IDEX_SINGLE INIT=1
{% endif %}
SET_SKEW CLEAR=1
_LED_MOTORS_OFF
[gcode_macro M104]
rename_existing = M104.1
gcode =
{% set s = params.S|default(0)|int %}
{% set t = params.T|default(-1)|int %}
{% set t = 0 if t == -1 else t %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
DEBUG_ECHO PREFIX="M104" MSG="s: {s}, t: {t}"
{% if printer["gcode_macro T%s" % t] is defined %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set temperature_offset_t0 = printer["gcode_macro T0"].temperature_offset|default(0)|int %}
{% set temperature_offset_t1 = printer["gcode_macro T1"].temperature_offset|default(0)|int %}
{% set s0 = [s + temperature_offset_t0, 0]|max %}
{% set s1 = [s + temperature_offset_t1, 0]|max %}
{% if temperature_offset_t0 != 0 %}
RATOS_ECHO PREFIX="M104" MSG="Temperature offset of {temperature_offset_t0}°C added to toolhead T0."
{% endif %}
{% if temperature_offset_t1 != 0 %}
RATOS_ECHO PREFIX="M104" MSG="Temperature offset of {temperature_offset_t1}°C added to toolhead T1."
{% endif %}
{% else %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% set s = [s + temperature_offset, 0]|max %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="M104" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% endif %}
{% set is_in_standby = false %}
{% if printer["dual_carriage"] is defined %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
{% if toolchange_standby_temp > -1 %}
{% set is_in_standby = true if printer["gcode_macro T%s" % t].standby|default(false)|lower == 'true' else false %}
{% endif %}
{% endif %}
{% if not is_in_standby %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
M104.1 S{s0} T0
M104.1 S{s1} T1
{% else %}
M104.1 S{s} T{t}
{% endif %}
{% endif %}
[gcode_macro M109]
rename_existing = M109.1
gcode =
{% set s = params.S|default(0)|int %}
{% set t = params.T|default(-1)|int %}
{% set t = 0 if t == -1 else t %}
DEBUG_ECHO PREFIX="M109" MSG="s: {s}, t: {t}"
{% if printer["gcode_macro T%s" % t] is defined %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% set s = [s + temperature_offset, 0]|max %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="M109" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% set is_in_standby = false %}
{% if printer["dual_carriage"] is defined %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
{% if toolchange_standby_temp > -1 %}
{% set is_in_standby = true if printer["gcode_macro T%s" % t].standby|default(false)|lower == 'true' else false %}
{% endif %}
{% endif %}
{% if not is_in_standby %}
M109.1 S{s} T{t}
{% endif %}
[gcode_macro SET_HEATER_TEMPERATURE]
rename_existing = SET_HEATER_TEMPERATURE_BASE
gcode =
{% set heater = params.HEATER|default("") %}
{% set target = params.TARGET|default(0)|int %}
DEBUG_ECHO PREFIX="SET_HEATER_TEMPERATURE" MSG="heater: {heater}, target: {target}"
{% if heater|lower == "extruder" or heater|lower == "extruder1" %}
{% set t = 0 if heater|lower == "extruder" else 1 %}
{% if printer["gcode_macro T%s" % t] is defined and target > 0 %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% set target = [target + temperature_offset, 0]|max %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="SET_HEATER_TEMPERATURE" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% endif %}
SET_HEATER_TEMPERATURE_BASE HEATER="{heater}" TARGET={target}
[gcode_macro TEMPERATURE_WAIT]
rename_existing = TEMPERATURE_WAIT_BASE
gcode =
{% set sensor = params.SENSOR|default("") %}
{% set minimum = params.MINIMUM|default(-1)|int %}
{% set maximum = params.MAXIMUM|default(-1)|int %}
DEBUG_ECHO PREFIX="TEMPERATURE_WAIT" MSG="sensor: {sensor}, minimum: {minimum}, maximum: {maximum}"
{% if sensor|lower == "extruder" or sensor|lower == "extruder1" %}
{% set t = 0 if sensor|lower == "extruder" else 1 %}
{% if printer["gcode_macro T%s" % t] is defined and (minimum > 0 or maximum > 0) %}
{% set temperature_offset = printer["gcode_macro T%s" % t].temperature_offset|default(0)|int %}
{% if minimum > -1 %}
{% set minimum = [minimum + temperature_offset, 0]|max %}
{% endif %}
{% if maximum > -1 %}
{% set maximum = [maximum + temperature_offset, 0]|max %}
{% endif %}
{% if temperature_offset != 0 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Temperature offset of {temperature_offset}°C added to toolhead T{t}."
{% endif %}
{% endif %}
{% endif %}
{% if minimum > -1 and maximum > -1 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Waiting for sensor: {sensor}, MINIMUM: {minimum}, MAXIMUM: {maximum}"
RATOS_ECHO MSG="please wait..."
TEMPERATURE_WAIT_BASE SENSOR="{sensor}" MINIMUM={minimum} MAXIMUM={maximum}
{% elif minimum > -1 and maximum == -1 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Waiting for sensor: {sensor}, MINIMUM: {minimum}"
RATOS_ECHO MSG="please wait..."
TEMPERATURE_WAIT_BASE SENSOR="{sensor}" MINIMUM={minimum}
{% elif minimum == -1 and maximum > -1 %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Waiting for sensor: {sensor}, MAXIMUM: {maximum}"
RATOS_ECHO MSG="please wait..."
TEMPERATURE_WAIT_BASE SENSOR="{sensor}" MAXIMUM={maximum}
{% endif %}
RATOS_ECHO PREFIX="TEMPERATURE_WAIT" MSG="Temperature for toolhead T{t} reached."
[gcode_macro SET_GCODE_OFFSET]
rename_existing = SET_GCODE_OFFSET_ORG
gcode =
SET_GCODE_OFFSET_ORG { rawparams }
{% if printer.configfile.settings.beacon is defined and (params.Z_ADJUST is defined or params.Z is defined) %}
_BEACON_APPLY_RUNTIME_MULTIPLIER
{% endif %}
[gcode_macro SDCARD_PRINT_FILE]
rename_existing = SDCARD_PRINT_FILE_BASE
gcode =
{% if printer["ratos"] is defined %}
PROCESS_GCODE_FILE { rawparams }
{% else %}
SDCARD_PRINT_FILE_BASE { rawparams }
{% endif %}
[gcode_macro SKEW_PROFILE]
rename_existing = SKEW_PROFILE_BASE
variable_loaded_profile = ""
gcode =
{% if params.LOAD is defined %}
{% if printer.configfile.settings["skew_correction %s" % params.LOAD] is defined %}
SET_GCODE_VARIABLE MACRO=SKEW_PROFILE VARIABLE=loaded_profile VALUE='"{params.LOAD}"'
{% endif %}
{% endif %}
SKEW_PROFILE_BASE { rawparams }
[gcode_macro SET_SKEW]
rename_existing = SET_SKEW_BASE
gcode =
{% if params.CLEAR is defined %}
{% if params.CLEAR|default(0)|int == 1 %}
SET_GCODE_VARIABLE MACRO=SKEW_PROFILE VARIABLE=loaded_profile VALUE='""'
{% endif %}
{% endif %}
SET_SKEW_BASE { rawparams }
[gcode_macro SET_VELOCITY_LIMIT]
rename_existing = SET_VELOCITY_LIMIT_BASE
gcode =
{% if params.ACCEL_TO_DECEL is defined %}
{% if params.ACCEL is defined %}
{% set accel = params.ACCEL|float %}
{% else %}
{% set accel = printer.toolhead.max_accel|float %}
{% endif %}
{% if params.VELOCITY is defined %}
{% set velocity = params.VELOCITY|float %}
{% else %}
{% set velocity = printer.toolhead.max_velocity|float %}
{% endif %}
{% if params.SQUARE_CORNER_VELOCITY is defined %}
{% set scv = params.SQUARE_CORNER_VELOCITY|float %}
{% else %}
{% set scv = printer.toolhead.square_corner_velocity|float %}
{% endif %}
{% set mcr = params.ACCEL_TO_DECEL|float / accel %}
DEBUG_ECHO PREFIX="SET_VELOCITY_LIMIT" MSG="ACCEL={accel}, VELOCITY={velocity}, SQUARE_CORNER_VELOCITY={scv}, MINIMUM_CRUISE_RATIO={mcr}"
SET_VELOCITY_LIMIT_BASE ACCEL={accel} VELOCITY={velocity} SQUARE_CORNER_VELOCITY={scv} MINIMUM_CRUISE_RATIO={1-mcr}
{% else %}
SET_VELOCITY_LIMIT_BASE { rawparams }
{% endif %}
[gcode_macro _START_PRINT_PARK]
gcode =
{% set z = printer["gcode_macro RatOS"].start_print_park_z_height|float %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set start_print_park_in = printer["gcode_macro RatOS"].start_print_park_in %}
{% set start_print_park_x = printer["gcode_macro RatOS"].start_print_park_x %}
{% if start_print_park_in == 'primeblob' %}
{% set z = 3 %}
{% endif %}
{% if printer["dual_carriage"] is defined and not (printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
{% if printer["gcode_macro RatOS"].start_print_park_x is defined and printer["gcode_macro RatOS"].start_print_park_x != '' %}
RATOS_ECHO PREFIX="WARNING" MSG="start_print_park_x is ignored for IDEX printers"
{% endif %}
PARK_TOOLHEAD
G90
{% endif %}
_PARK LOCATION={start_print_park_in} X={start_print_park_x}
G0 Z{z} F{z_speed}
[gcode_macro _END_PRINT_PARK]
gcode =
{% if printer["dual_carriage"] is defined %}
{% if printer["gcode_macro RatOS"].end_print_park_x is defined and printer["gcode_macro RatOS"].end_print_park_x != '' %}
RATOS_ECHO PREFIX="WARNING" MSG="end_print_park_x is ignored for IDEX printers"
{% endif %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
_IDEX_SINGLE X={parking_position}
PARK_TOOLHEAD
G90
{% endif %}
_PARK LOCATION={printer["gcode_macro RatOS"].end_print_park_in} X={printer["gcode_macro RatOS"].end_print_park_x}
[gcode_macro _PARK]
gcode =
{% set x = params.X %}
{% set location = params.LOCATION|default('back')|lower %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set nozzle_prime_start_x = printer["gcode_macro RatOS"].nozzle_prime_start_x %}
{% set nozzle_prime_start_y = printer["gcode_macro RatOS"].nozzle_prime_start_y %}
{% set nozzle_priming = printer["gcode_macro RatOS"].nozzle_priming|lower %}
CACHE_TOOLHEAD_SETTINGS KEY="park"
SET_MACRO_TRAVEL_SETTINGS
{% if x != '' %}
{% if x|float >= printer.toolhead.axis_minimum.x + 5 and x|float <= printable_x_max - 5 %}
{% set park_x = x|float %}
{% else %}
{action_respond_info('The requested X co-ordinate is outside the defined axis bounds - using defaults')}
{% set park_x = printable_x_max / 2 %}
{% endif %}
{% else %}
{% set park_x = printable_x_max / 2 %}
{% endif %}
{% set park_y = printable_y_max - 15 %}
{% if location == 'front' %}
{% set park_y = printer.toolhead.axis_minimum.y + 5 %}
{% elif location == 'center' %}
{% set park_y = printable_y_max / 2 %}
{% elif location == 'primeblob' and printer["dual_carriage"] is defined %}
{% set park_y = printable_y_max - 15 %}
{% endif %}
{% if location == 'primeblob' and printer["dual_carriage"] is not defined %}
{% if (nozzle_priming == 'primeblob' or nozzle_priming == 'primeline') %}
{% if nozzle_prime_start_x|lower == 'min' %}
{% set park_x = 5 %}
{% elif nozzle_prime_start_x|lower == 'max' %}
{% set park_x = printable_x_max - 5 %}
{% else %}
{% set park_x = nozzle_prime_start_x|float %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set park_y = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set park_y = printable_y_max - 5 %}
{% else %}
{% set park_y = nozzle_prime_start_y|float %}
{% endif %}
{% endif %}
{% endif %}
G90
{% if printer["dual_carriage"] is not defined %}
G0 X{park_x} Y{park_y} F{speed}
{% else %}
G0 Y{park_y} F{speed}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="park"
[gcode_macro SAVE_PROBE_RESULT]
gcode =
{% set beacon_contact_prime_probing = true if printer["gcode_macro RatOS"].beacon_contact_prime_probing|default(false)|lower == 'true' else false %}
{% set last_z_offset = 9999.9 %}
{% if printer.configfile.settings.beacon is defined %}
{% set current_z = printer.toolhead.position.z|float %}
{% if beacon_contact_prime_probing %}
{% set last_z_offset = printer.beacon.last_z_result %}
{% else %}
{% set last_z_offset = printer.beacon.last_sample.dist - current_z %}
{% endif %}
{% elif printer.configfile.settings.bltouch is defined %}
{% set config_offset = printer.configfile.settings.bltouch.z_offset|float %}
{% set last_z_offset = printer.probe.last_z_result - config_offset %}
{% elif printer.configfile.settings.probe is defined %}
{% set config_offset = printer.configfile.settings.probe.z_offset|float %}
{% set last_z_offset = printer.probe.last_z_result - config_offset %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Saving offset adjustment of {last_z_offset} in {params.VARIABLE|default('last_z_offset')}"
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE={params.VARIABLE|default('last_z_offset')} VALUE={last_z_offset}
[gcode_macro PROBE_FOR_PRIMING]
gcode =
{% set probe_for_priming_disable_mesh_constraints = true if printer["gcode_macro RatOS"].probe_for_priming_disable_mesh_constraints|default(false)|lower == 'true' else false %}
{% if printer["gcode_macro RatOS"].nozzle_priming|lower != 'false' %}
SAVE_GCODE_STATE NAME=probe_for_priming_state
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Probing the prime location.."
CACHE_TOOLHEAD_SETTINGS KEY="probe_for_priming"
SET_MACRO_TRAVEL_SETTINGS
{% set t = params.TOOLHEAD|default(-1)|int %}
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set nozzle_prime_start_x = printer["gcode_macro RatOS"].nozzle_prime_start_x %}
{% set nozzle_prime_start_y = printer["gcode_macro RatOS"].nozzle_prime_start_y %}
{% if idex_mode == '' %}
{% if nozzle_prime_start_x|lower == 'min' %}
{% set x_start = 5 %}
{% elif nozzle_prime_start_x|lower == 'max' %}
{% set x_start = printable_x_max - 5 %}
{% else %}
{% set x_start = nozzle_prime_start_x|float %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_y_max - 5 %}
{% else %}
{% set y_start = nozzle_prime_start_y|float %}
{% endif %}
{% else %}
{% set center_x = printable_x_max / 2 %}
{% if t == 0 %}
{% set x_start = 5 %}
{% else %}
{% set x_start = printable_x_max - 5 %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_y_max - 5 %}
{% endif %}
{% endif %}
{% set z = printer.configfile.settings.bed_mesh.horizontal_move_z|float %}
{% set mesh_config = printer.configfile.config.bed_mesh %}
{% if printer.configfile.settings.bltouch is defined %}
{% set x_offset = printer.configfile.settings.bltouch.x_offset|float %}
{% set y_offset = printer.configfile.settings.bltouch.y_offset|float %}
{% set z_offset = printer.configfile.settings.bltouch.z_offset|float %}
{% elif printer.configfile.settings.probe is defined %}
{% set x_offset = printer.configfile.settings.probe.x_offset|float %}
{% set y_offset = printer.configfile.settings.probe.y_offset|float %}
{% set z_offset = printer.configfile.settings.probe.z_offset|float %}
{% elif printer.configfile.settings.beacon is defined %}
{% set x_offset = printer.configfile.settings.beacon.x_offset|float %}
{% set y_offset = printer.configfile.settings.beacon.y_offset|float %}
{% set z_offset = printer.configfile.settings.beacon.trigger_distance|float %}
{% else %}
{ action_raise_error("No probe, beacon or bltouch section found. Adaptive priming only works with a [probe], [beacon] or [bltouch] section defined.") }
{% endif %}
{% if z < z_offset %}
{ action_raise_error("Horizontal move Z ({z}) is below your probe's Z offset ({z_offset}). Please adjust your horizontal_move_z setting in [bed_mesh] to be above {z}.") }
{% endif %}
{% if not probe_for_priming_disable_mesh_constraints %}
{% set min_x = mesh_config.mesh_min.split(",")[0]|float - x_offset %}
{% set min_y = mesh_config.mesh_min.split(",")[1]|float - y_offset %}
{% set max_x = mesh_config.mesh_max.split(",")[0]|float - x_offset %}
{% set max_y = mesh_config.mesh_max.split(",")[1]|float - y_offset %}
{% set x_start = [[x_start, max_x]|min, min_x]|max %}
{% set y_start = [[y_start, max_y]|min, min_y]|max %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Probing the start of the prime location at {x_start}, {y_start}"
G90
M83
G0 Z{z} F{z_speed}
G1 X{x_start} Y{y_start} F{speed}
PROBE_CURRENT_POSITION
{% if t == 1 %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_result_t1
{% else %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_result
{% endif %}
{% if idex_mode == '' %}
{% set x_end = x_start %}
{% set y_end = y_start + 45 %}
{% else %}
{% if t==1 %}
{% set x_end = x_start - 45 %}
{% else %}
{% set x_end = x_start + 45 %}
{% endif %}
{% set y_end = y_start %}
{% endif %}
RATOS_ECHO PREFIX="Adaptive Mesh" MSG="Probing the end of the prime location at {x_end}, {y_end}"
G1 X{x_end} Y{y_end} F{speed}
PROBE_CURRENT_POSITION
{% if t == 1 %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_end_result_t1
{% else %}
SAVE_PROBE_RESULT VARIABLE=probe_for_priming_end_result
{% endif %}
RESTORE_GCODE_STATE NAME=probe_for_priming_state
RESTORE_TOOLHEAD_SETTINGS KEY="probe_for_priming"
{% endif %}
[gcode_macro RESET_PRIME_PROBE_STATE]
gcode =
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_result VALUE=None
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_end_result VALUE=None
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_result_t1 VALUE=None
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=probe_for_priming_end_result_t1 VALUE=None
{% endif %}
[gcode_macro PROBE_CURRENT_POSITION]
gcode =
{% set beacon_contact_prime_probing = true if printer["gcode_macro RatOS"].beacon_contact_prime_probing|default(false)|lower == 'true' else false %}
SAVE_GCODE_STATE NAME=probe_current_position_state
{% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
ASSERT_PROBE_DEPLOYED
{% endif %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_prime_probing %}
PROBE PROBE_METHOD=contact SAMPLES=1
{% else %}
PROBE
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
BEACON_QUERY
{% else %}
RESTORE_GCODE_STATE NAME=probe_current_position_state MOVE=1 MOVE_SPEED={printer["gcode_macro RatOS"].macro_z_speed|float}
{% endif %}
[gcode_macro PRIME_BLOB]
description = Prints a primeblob, used internally, if configured, as part of the START_PRINT macro.
variable_x_offset = 5
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="prime_blob"
SET_MACRO_TRAVEL_SETTINGS
RATOS_ECHO PREFIX="Priming" MSG="Priming nozzle with prime blob.."
{% set current_toolhead = 0 %}
{% set target_idex_mode = '' %}
{% set extruder = 'extruder' %}
{% if printer["dual_carriage"] is defined %}
{% if params.IDEX_MODE is defined %}
{% set target_idex_mode = params.IDEX_MODE|default('')|lower %}
{% else %}
{ action_raise_error("IDEX_MODE parameter not found for PRIME_BLOB macro. This is likely a bug.") }
{% endif %}
RATOS_ECHO PREFIX="Priming" MSG="Priming in IDEX {target_idex_mode} mode.."
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set current_toolhead = 1 if current_idex_mode=='primary' else 0 %}
{% set extruder = 'extruder1' if current_toolhead == 1 else 'extruder' %}
{% endif %}
{% if target_idex_mode != "copy" or target_idex_mode != "mirror" %}
SAVE_GCODE_STATE NAME=prime_blob_state
{% endif %}
{% set first_y = printer["gcode_macro START_PRINT"].first_y|default(-1)|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set fan_speed = printer["gcode_macro RatOS"].nozzle_prime_bridge_fan|float %}
{% set nozzle_diameter = printer.configfile.settings[extruder].nozzle_diameter|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set has_start_offset_t0 = printer["gcode_macro RatOS"].probe_for_priming_result|float(9999.9) != 9999.9 %}
{% if printer["dual_carriage"] is defined %}
{% set has_start_offset_t1 = printer["gcode_macro RatOS"].probe_for_priming_result_t1|float(9999.9) != 9999.9 %}
{% endif %}
{% set start_print_park_in = printer["gcode_macro RatOS"].start_print_park_in %}
{% set start_print_park_z_height = printer["gcode_macro RatOS"].start_print_park_z_height|float %}
{% set nozzle_prime_direction = printer["gcode_macro RatOS"].nozzle_prime_direction|lower %}
{% set nozzle_prime_start_x = printer["gcode_macro RatOS"].nozzle_prime_start_x %}
{% set nozzle_prime_start_y = printer["gcode_macro RatOS"].nozzle_prime_start_y %}
{% set initial_toolhead = params.INITIAL_TOOLHEAD|default(default_toolhead)|int %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% if target_idex_mode == '' %}
{% set x_factor = 0 %}
{% if nozzle_prime_start_x|lower == 'min' %}
{% set x_start = 5 %}
{% elif nozzle_prime_start_x|lower == 'max' %}
{% set x_start = printable_x_max - 5 %}
{% else %}
{% set x_start = nozzle_prime_start_x|float %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% set y_factor = 1 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_y_max - 5 %}
{% set y_factor = -1 %}
{% else %}
{% set y_start = nozzle_prime_start_y|float %}
{% if nozzle_prime_start_y|float < printable_y_max / 2 %}
{% set y_factor = 1 %}
{% else %}
{% set y_factor = -1 %}
{% endif %}
{% endif %}
{% if nozzle_prime_direction == 'forwards' %}
{% set y_factor = 1 %}
{% elif nozzle_prime_direction == 'backwards' %}
{% set y_factor = -1 %}
{% endif %}
{% if start_print_park_in == 'primeblob' %}
{% set z = 3 %}
{% else %}
{% set z = start_print_park_z_height %}
{% endif %}
{% else %}
{% set center_x = printable_x_max / 2 %}
{% set y_factor = 0 %}
{% if target_idex_mode == 'copy' or target_idex_mode == 'mirror' %}
{% set x_start = center_x / 2 + 5 %}
{% set x_factor = 1 %}
{% else %}
{% if both_toolheads and initial_toolhead != current_toolhead %}
{% if current_toolhead == 0 %}
{% set x_start = 55 %}
{% set x_factor = -1 %}
{% elif current_toolhead == 1 %}
{% set x_start = printable_x_max - 55 %}
{% set x_factor = 1 %}
{% endif %}
{% else %}
{% if current_toolhead == 0 %}
{% set x_start = 5 %}
{% set x_factor = 1 %}
{% elif current_toolhead == 1 %}
{% set x_start = printable_x_max - 5 %}
{% set x_factor = -1 %}
{% endif %}
{% endif %}
{% endif %}
{% if nozzle_prime_start_y|lower == 'min' %}
{% set y_start = 5 %}
{% elif nozzle_prime_start_y|lower == 'max' %}
{% set y_start = printable_x_max - 5 %}
{% endif %}
{% set z = 10 %}
{% endif %}
{% set start_z_offset = 0 %}
{% set end_z_offset = 0 %}
{% if has_start_offset_t0 %}
{% set start_z_probe_result_t0 = printer["gcode_macro RatOS"].probe_for_priming_result|float(9999.9) %}
{% set end_z_probe_result_t0 = printer["gcode_macro RatOS"].probe_for_priming_end_result|float(9999.9) %}
{% if printer.configfile.settings.bltouch is not defined and printer.configfile.settings.probe is not defined and printer.configfile.settings.beacon is not defined %}
{ action_raise_error("No probe or bltouch section found. Adaptive priming only works with [probe], [beacon] or [bltouch].") }
{% endif %}
{% if start_z_probe_result_t0 == 9999.9 %}
{ action_raise_error("No start probe result found for prime area. This is likely a bug.") }
{% endif %}
{% if end_z_probe_result_t0 == 9999.9 %}
{ action_raise_error("No end probe result found for prime area. This is likely a bug.") }
{% endif %}
{% set adjustment_threshold = printer["gcode_macro RatOS"].adaptive_prime_offset_threshold|float %}
{% if start_z_probe_result_t0 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (start_z_probe_result_t0) ) }
{% endif %}
{% if end_z_probe_result_t0 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (end_z_probe_result_t0) ) }
{% endif %}
{% set start_z_offset = start_z_probe_result_t0 %}
{% set end_z_offset = end_z_probe_result_t0 %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if current_toolhead == 1 or both_toolheads or target_idex_mode == "copy" or target_idex_mode == "mirror" %}
{% if has_start_offset_t1 %}
{% set start_z_probe_result_t1 = printer["gcode_macro RatOS"].probe_for_priming_result_t1|float(9999.9) %}
{% set end_z_probe_result_t1 = printer["gcode_macro RatOS"].probe_for_priming_end_result_t1|float(9999.9) %}
{% if printer.configfile.settings.bltouch is not defined and printer.configfile.settings.probe is not defined and printer.configfile.settings.beacon is not defined %}
{ action_raise_error("No probe or bltouch section found. Adaptive priming only works with [probe], [beacon] or [bltouch].") }
{% endif %}
{% if start_z_probe_result_t1 == 9999.9 %}
{ action_raise_error("No start probe result found for prime area. This is likely a bug.") }
{% endif %}
{% if end_z_probe_result_t1 == 9999.9 %}
{ action_raise_error("No end probe result found for prime area. This is likely a bug.") }
{% endif %}
{% set adjustment_threshold = printer["gcode_macro RatOS"].adaptive_prime_offset_threshold|float %}
{% if start_z_probe_result_t1 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (start_z_probe_result_t1) ) }
{% endif %}
{% if end_z_probe_result_t1 < adjustment_threshold %}
{ action_raise_error("Abnormal probe offset detected. Needed offset of %.5f is below the offset threshold of -1mm. Please verify the probe is over the bed when probing for priming. If it isn't, you should adjust you min/max bed_mesh settings so the probe is always over the print area." % (end_z_probe_result_t1) ) }
{% endif %}
{% set start_z_offset = [start_z_offset, start_z_probe_result_t1]|max %}
{% set end_z_offset = [end_z_offset, start_z_probe_result_t1]|max %}
{% endif %}
{% endif %}
{% if target_idex_mode != 'copy' and target_idex_mode != 'mirror' %}
{% if both_toolheads and initial_toolhead != current_toolhead %}
{% set original_start_z_offset = start_z_offset %}
{% set original_end_z_offset = end_z_offset %}
{% set start_z_offset = original_end_z_offset %}
{% set end_z_offset = original_start_z_offset %}
{% endif %}
{% endif %}
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={current_toolhead}
{% endif %}
DEBUG_ECHO PREFIX="PRIME_BLOB" MSG="x_start: {x_start}, y_start: {y_start}, x_factor: {x_factor}, y_factor: {y_factor}, z: {z}, start_z_offset: {start_z_offset}, end_z_offset: {end_z_offset}"
G90
M83
RATOS_ECHO PREFIX="Priming" MSG="Lifting Z to {z}.."
G0 Z{z} F{z_speed}
{% if printer["dual_carriage"] is not defined %}
RATOS_ECHO PREFIX="Priming" MSG="Moving to {x_start}, {y_start} along the edge of the print area.."
{% if start_print_park_in != 'primeblob' %}
G1 X{x_start} F{speed}
G1 Y{y_start + (15 * y_factor)} F{speed}
{% endif %}
{% else %}
G1 Y{y_start + (15 * y_factor)} F{speed}
{% if target_idex_mode=="copy" or target_idex_mode=="mirror" %}
RATOS_ECHO PREFIX="Priming" MSG="Mirroring move to {x_start}, {y_start} along the edge of the print area.."
_IDEX_MIRROR PRIMING=1
{% else %}
RATOS_ECHO PREFIX="Priming" MSG="Moving to {x_start}, {y_start} along the edge of the print area.."
{% endif %}
G1 X{x_start} F{speed}
{% endif %}
RATOS_ECHO PREFIX="Priming" MSG="Starting prime blob.."
G1 Z{0.5 + start_z_offset} F{z_speed}
G1 Y{y_start} F{speed}
G1 F300 E{14 / ((0.4 / nozzle_diameter) ** 2)}
G1 F300 E{14 / ((0.4 / nozzle_diameter) ** 2)}
M106 S{fan_speed}
G1 Z5 F100 E5
G92 E0
RATOS_ECHO PREFIX="Priming" MSG="Bridging with {((fan_speed/255) * 100)|int}% fan speed.."
G1 F3000 X{x_start + (15 * x_factor)} Y{y_start + (15 * y_factor)} E{1 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (20 * x_factor)} Y{y_start + (20 * y_factor)} Z{3.8 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (34 * x_factor)} Y{y_start + (34 * y_factor)} Z{2.6 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (38 * x_factor)} Y{y_start + (38 * y_factor)} Z{1.4 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
G1 F3000 X{x_start + (42 * x_factor)} Y{y_start + (42 * y_factor)} Z{0.2 + end_z_offset} E{0.2 / ((0.4 / nozzle_diameter) ** 2)}
M106 S0
G1 F3000 X{x_start + (46 * x_factor)} Y{y_start + (46 * y_factor)} Z{0.2 + end_z_offset} E0.6
G1 F{speed} X{x_start + (50 * x_factor)} Y{y_start + (50 * y_factor)}
{% if target_idex_mode == "copy" or target_idex_mode == "mirror" %}
G0 Z3 F{z_speed}
{% endif %}
{% if target_idex_mode == "copy" %}
{% if first_y >= 0 %}
_IDEX_COPY DANCE=0 Y={first_y}
{% else %}
_IDEX_COPY DANCE=0 Y={params.Y1}
{% endif %}
{% endif %}
{% if target_idex_mode != "copy" or target_idex_mode != "mirror" %}
RESTORE_GCODE_STATE NAME=prime_blob_state
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="prime_blob"
G92 E0
[gcode_macro UNLOAD_FILAMENT]
description = Unloads the filament. Note: be careful with PETG, make sure you inspect the tip of your filament before reloading to avoid jams.
variable_ignore_min_extrude_temp = True
gcode =
_LEARN_MORE_FILAMENT
{% set temp = params.TEMP|default(220)|int %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set filament_name = params._NAME|default('')|string %}
{% set filament_type = params._TYPE|default('')|string %}
{% set temp = params.TEMP|default(220)|int %}
{% if printer["dual_carriage"] is not defined %}
_DEFAULT_UNLOAD_FILAMENT TEMP={temp} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
{% if not printer.pause_resume.is_paused %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Unloading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
{% set paused_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% if paused_idex_mode == 'copy' or paused_idex_mode == 'mirror' %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set toolhead = printer["gcode_macro PAUSE"].idex_toolhead|int %}
{% endif %}
{% endif %}
{% endif %}
{% if toolhead==0 or toolhead==1 %}
_IDEX_UNLOAD_FILAMENT TEMP={temp} TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
RATOS_ECHO MSG="Please select toolhead! 0 = left, 1 = right toolhead"
{% endif %}
{% endif %}
[gcode_macro _LEGACY_UNLOAD_FILAMENT]
description = Unloads the filament. Note: be careful with PETG, make sure you inspect the tip of your filament before reloading to avoid jams.
gcode =
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% set unload_speed = 5 * 60 %}
{% set unload_length = printer["gcode_macro RatOS"].filament_unload_length|float %}
M117 Unloading filament...
G0 E10 F300
G0 E-5 F3600
G4 P3000
G0 E5 F6000
G0 E-15 F6000
G0 E-{unload_length} F{unload_speed}
_CLEANING_MOVE TOOLHEAD={toolhead}
M117 Filament unloaded!
RESPOND MSG="Filament unloaded! Please inspect the tip of the filament before reloading."
[gcode_macro _DEFAULT_UNLOAD_FILAMENT]
description = Unload filament macro for non IDEX printers.
gcode =
{% set temp = params.TEMP|default(220)|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set enable_unload_tip_forming = true if printer["gcode_macro RatOS"].enable_unload_tip_forming|default(false)|lower == 'true' else false %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_DEFAULT_UNLOAD_FILAMENT" MSG="TEMP: {temp}"
_LED_UNLOADING_FILAMENT TOOLHEAD=0
SAVE_GCODE_STATE NAME=unload_state
{% if printer.extruder.temperature|int < temp or printer.extruder.can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating extruder to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={temp}
G4 P3000
{% if enable_unload_tip_forming %}
_UNLOAD_FILAMENT TOOLHEAD=0 NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
_LEGACY_UNLOAD_FILAMENT TOOLHEAD=0
{% endif %}
RESTORE_GCODE_STATE NAME=unload_state
SAVE_VARIABLE VARIABLE=t0_filament VALUE="('""', '""', 0)"
{% if printer["gcode_macro T0"].filament_name is defined and printer["gcode_macro T0"].filament_type is defined and printer["gcode_macro T0"].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE=0
{% endif %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_unknown}"'
_LED_FILAMENT_UNLOADED TOOLHEAD=0
[gcode_macro _IDEX_UNLOAD_FILAMENT]
description = Unload filament macro for IDEX printer.
gcode =
{% set temp = params.TEMP|default(220)|int %}
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% set enable_unload_tip_forming = true if printer["gcode_macro RatOS"].enable_unload_tip_forming|default(false)|lower == 'true' else false %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
DEBUG_ECHO PREFIX="_IDEX_UNLOAD_FILAMENT" MSG="TEMP: {temp}, TOOLHEAD: {toolhead}"
_LED_UNLOADING_FILAMENT TOOLHEAD={toolhead}
{% if "xyz" not in printer.toolhead.homed_axes %}
_SELECT_TOOL T={toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% set target_extruder = 'extruder%s' % ('' if toolhead == 0 else toolhead) %}
ACTIVATE_EXTRUDER EXTRUDER={target_extruder}
{% if not printer.pause_resume.is_paused %}
{% if printer[target_extruder].temperature|int < temp or printer[target_extruder].can_extrude|lower == 'false' %}
RATOS_ECHO MSG="Heating T{toolhead} to {temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={temp}
{% endif %}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={temp}
{% endif %}
G4 P3000
{% if enable_unload_tip_forming %}
_UNLOAD_FILAMENT TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
_LEGACY_UNLOAD_FILAMENT TEMP={temp} TOOLHEAD={toolhead}
{% endif %}
SAVE_VARIABLE VARIABLE=t{toolhead}_filament VALUE="('""', '""', 0)"
{% if printer["gcode_macro T%s" % toolhead].filament_name is defined and printer["gcode_macro T%s" % toolhead].filament_type is defined and printer["gcode_macro T%s" % toolhead].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_temp VALUE=0
{% endif %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_unknown}"'
_LED_FILAMENT_UNLOADED TOOLHEAD={toolhead}
[gcode_macro _UNLOAD_FILAMENT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
DEBUG_ECHO PREFIX="_UNLOAD_FILAMENT" MSG="TOOLHEAD: {toolhead}"
_MOVE_TO_LOADING_POSITION TOOLHEAD={toolhead}
_UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
_UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER TOOLHEAD={toolhead}
_CLEANING_MOVE TOOLHEAD={toolhead}
[gcode_macro _UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
DEBUG_ECHO PREFIX="_UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE" MSG="TOOLHEAD: {toolhead}"
RATOS_ECHO MSG="Unloading filament from nozzle to cooling zone... Please wait!"
_PURGE_BEFORE_UNLOAD TOOLHEAD={toolhead}
{% if printer["gcode_macro _UNLOAD_WITHOUT_TIP_FORMING"] is defined %}
_UNLOAD_WITHOUT_TIP_FORMING TOOLHEAD={toolhead} NAME='{filament_name}' TYPE='{filament_type}'
{% else %}
_UNLOAD_WITH_TIP_FORMING NAME='{filament_name}' TYPE='{filament_type}'
{% endif %}
G4 P3000
[gcode_macro _UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set extruder_load_speed = printer["gcode_macro T%s" % toolhead].extruder_load_speed|float * 60 %}
{% set extruder_gear_to_cooling_position_distance = printer["gcode_macro T%s" % toolhead].extruder_gear_to_cooling_position_distance|float %}
{% set tooolhead_sensor_to_extruder_gear_distance = printer["gcode_macro T%s" % toolhead].tooolhead_sensor_to_extruder_gear_distance|float %}
DEBUG_ECHO PREFIX="_UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER" MSG="TOOLHEAD: {toolhead}"
G0 E-{extruder_gear_to_cooling_position_distance + tooolhead_sensor_to_extruder_gear_distance + 50} F{extruder_load_speed}
RATOS_ECHO MSG="Filament unloaded! Please inspect the tip of the filament before reloading."
[gcode_macro _UNLOAD_WITH_TIP_FORMING]
gcode =
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
{% if filament_name != '' and filament_type != '' %}
_UNLOAD_KNOWN_FILAMENT NAME={filament_name} TYPE={filament_type}
{% else %}
_UNLOAD_UNKNOWN_FILAMENT TOOLHEAD={toolhead}
{% endif %}
[gcode_macro _UNLOAD_KNOWN_FILAMENT]
description = User overrideable tip forming macro if slicer filament profiles are known
gcode =
{% set filament_name = params.NAME|default('')|string %}
{% set filament_type = params.TYPE|default('')|string %}
RATOS_ECHO PREFIX="FILAMENT TYPE" MSG='{filament_type}'
RATOS_ECHO PREFIX="FILAMENT PROFILE" MSG='{filament_name}'
{% if filament_name == "Prusament PETG @V-Minion" %}
_TIP_FORMING RETRACT_LENGTH=18 COOLING_MOVE_LENGTH=10
{% elif filament_name == "Nobufil PETG @V-Minion" %}
_TIP_FORMING RETRACT_LENGTH=18 COOLING_MOVE_LENGTH=10
{% else %}
RATOS_ECHO PREFIX="_UNLOAD_KNOWN_FILAMENT" MSG="Filament profile not found!"
_UNLOAD_UNKNOWN_FILAMENT
{% endif %}
[gcode_macro _UNLOAD_UNKNOWN_FILAMENT]
description = User overrideable standard tip forming macro
gcode =
DEBUG_ECHO PREFIX="_UNLOAD_UNKNOWN_FILAMENT" MSG="Using standard tip forming macro!"
_TIP_FORMING RETRACT_LENGTH=18 COOLING_MOVE_LENGTH=10
[gcode_macro _TIP_FORMING]
gcode =
{% set cooling_moves = params.COOLING_MOVES|default(4)|int %}
{% set cooling_move_length = params.COOLING_MOVE_LENGTH|default(10)|float %}
{% set start_cooling_speed = params.START_COOLING_SPEED|default(10)|float * 60 %}
{% set end_cooling_speed = params.END_COOLING_SPEED|default(50)|float * 60 %}
{% if cooling_moves == 0 %}
{% set cooling_move_length = 0 %}
{% endif %}
{% set dip = true if params.DIP|default(false)|lower == "true" else false %}
{% set dip_length = params.DIP_LENGTH|default(22)|float %}
{% set dip_speed = params.DIP_SPEED|default(30)|float * 60 %}
{% set dip_retract_speed = params.DIP_RETRACT_SPEED|default(70)|float * 60 %}
{% set retract_length = params.RETRACT_LENGTH|default(18)|float %}
{% set start_retract_speed = params.START_RETRACT_SPEED|default(120)|float * 60 %}
{% set end_retract_speed = params.END_RETRACT_SPEED|default(20)|float * 60 %}
DEBUG_ECHO PREFIX="_TIP_FORMING" MSG="cooling_moves: {cooling_moves}, cooling_move_length: {cooling_move_length}, start_cooling_speed: {start_cooling_speed}, end_cooling_speed: {end_cooling_speed}, dip: {dip}, dip_length: {dip_length}, dip_speed: {dip_speed}, dip_retract_speed: {dip_retract_speed}, retract_length: {retract_length}, start_retract_speed: {start_retract_speed}, end_retract_speed: {end_retract_speed}"
M220 S100
G92 E0
{% set retract = retract_length + cooling_move_length / 2 - 15 %}
G1 E-15 F{start_retract_speed}
G1 E-{0.7 * retract} F{1.0 * end_retract_speed}
G1 E-{0.2 * retract} F{0.5 * end_retract_speed}
G1 E-{0.1 * retract} F{0.3 * end_retract_speed}
G92 E0
{% if cooling_moves > 0 %}
{% set i = (end_cooling_speed - start_cooling_speed) / (2 * cooling_moves - 1) %}
{% for m in range(cooling_moves) %}
G1 E{cooling_move_length} F{(start_cooling_speed + i * m * 2)}
G1 E-{cooling_move_length} F{(start_cooling_speed + i * (m * 2 + 1))}
{% endfor %}
{% endif %}
G92 E0
{% if dip %}
G1 E{dip_length} F{dip_speed}
G4 P100
G1 E-{dip_length} F{dip_retract_speed}
{% endif %}
G92 E0
M400
[gcode_macro _ON_FILAMENT_SENSOR_BUTTON_PRESSED]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_ON_FILAMENT_SENSOR_BUTTON_PRESSED" MSG="TOOLHEAD: {toolhead}"
{% if not printer.virtual_sdcard.is_active %}
UNLOAD_FILAMENT TOOLHEAD={toolhead}
{% endif %}
[gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_runout_detection = true if printer["gcode_macro T%s" % toolhead].enable_runout_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT" MSG="TOOLHEAD: {toolhead}"
{% if enable_runout_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=false
{% endif %}
[gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_CLOG]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_clog_detection = true if printer["gcode_macro T%s" % toolhead].enable_clog_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_TOOLHEAD_FILAMENT_SENSOR_CLOG" MSG="TOOLHEAD: {toolhead}"
{% if enable_clog_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=true
{% endif %}
[gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_runout_detection = true if printer["gcode_macro T%s" % toolhead].enable_runout_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_BOWDEN_FILAMENT_SENSOR_RUNOUT" MSG="TOOLHEAD: {toolhead}"
{% if enable_runout_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=false
{% endif %}
[gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_CLOG]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set enable_clog_detection = true if printer["gcode_macro T%s" % toolhead].enable_clog_detection|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_ON_BOWDEN_FILAMENT_SENSOR_CLOG" MSG="TOOLHEAD: {toolhead}"
{% if enable_clog_detection %}
_ON_FILAMENT_END TOOLHEAD={toolhead} CLOGGED=true
{% endif %}
[gcode_macro _ON_FILAMENT_END]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set clogged = true if params.CLOGGED|default(false)|lower == 'true' else false %}
{% set unload_after_runout = printer["gcode_macro T%s" % toolhead].unload_after_runout|float %}
{% if clogged %}
_LED_FILAMENT_CLOG TOOLHEAD={toolhead}
{% else %}
_LED_FILAMENT_RUNOUT TOOLHEAD={toolhead}
{% endif %}
DEBUG_ECHO PREFIX="_ON_FILAMENT_END" MSG="TOOLHEAD: {toolhead}"
{% if printer.virtual_sdcard.is_active %}
{% if not printer.pause_resume.is_paused %}
PAUSE RUNOUT=True
{% endif %}
{% if not clogged and unload_after_runout %}
UNLOAD_FILAMENT TOOLHEAD={toolhead}
{% endif %}
{% if not clogged and printer["dual_carriage"] is defined %}
{% if printer["gcode_macro _IDEX_JOIN_SPOOLS"].enabled|default(false)|lower == 'true'%}
_JOIN_SPOOL TOOLHEAD={toolhead}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M600]
description = Executes a color change by pausing the printer an unloading the filament.
gcode =
PAUSE
UNLOAD_FILAMENT
RATOS_ECHO MSG="Please load new filament and resume"
[gcode_macro COLD_PULL]
description = Automated hotend cold pull.
gcode =
{% set extrusion_temp = params.EXTRUSION_TEMP|default(220)|int %}
{% set cold_pull_temp = params.COLD_PULL_TEMP|default(80)|int %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% if printer["dual_carriage"] is not defined %}
{% set toolhead = 0 %}
{% else %}
{% if not printer.pause_resume.is_paused %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
{action_raise_error("Unloading filament in Copy or Mirror mode is not supported! Select single mode to proceed.")}
{% else %}
{% set paused_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% if paused_idex_mode == 'copy' or paused_idex_mode == 'mirror' %}
{% set toolhead = params.TOOLHEAD|default(-1)|int %}
{% else %}
{% set toolhead = printer["gcode_macro PAUSE"].idex_toolhead|int %}
{% endif %}
{% endif %}
{% endif %}
{% if toolhead != 0 and toolhead != 1 %}
{action_raise_error("Please select toolhead! 0 = left, 1 = right toolhead")}
{% endif %}
{% endif %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
_LED_UNLOADING_FILAMENT TOOLHEAD={toolhead}
SAVE_GCODE_STATE NAME=cold_pull_state
{% if "xyz" not in printer.toolhead.homed_axes %}
_SELECT_TOOL T={toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% set target_extruder = 'extruder%s' % ('' if toolhead == 0 else toolhead) %}
ACTIVATE_EXTRUDER EXTRUDER={target_extruder}
RATOS_ECHO MSG="Heating T{toolhead} to {extrusion_temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={extrusion_temp}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={extrusion_temp} MAXIMUM={extrusion_temp + 2}
G4 P3000
RATOS_ECHO MSG="extruding..."
G92 E0
G1 E30 F300
G92 E0
RATOS_ECHO MSG="Heating T{toolhead} to {cold_pull_temp}C... Please wait."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={cold_pull_temp}
TEMPERATURE_WAIT SENSOR={target_extruder} MINIMUM={cold_pull_temp} MAXIMUM={cold_pull_temp + 2}
G4 P10000
RATOS_ECHO MSG="cold pull..."
FORCE_MOVE STEPPER={target_extruder} DISTANCE=-40 VELOCITY=5 ACCEL=100
RATOS_ECHO MSG="eject filament..."
FORCE_MOVE STEPPER={target_extruder} DISTANCE=-200 VELOCITY=20 ACCEL=500
RATOS_ECHO MSG="cooling down extruder..."
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET=0
RESTORE_GCODE_STATE NAME=cold_pull_state
SAVE_VARIABLE VARIABLE=t{toolhead}_filament VALUE="('""', '""', 0)"
{% if printer["gcode_macro T%s" % toolhead].filament_name is defined and printer["gcode_macro T%s" % toolhead].filament_type is defined and printer["gcode_macro T%s" % toolhead].filament_temp is defined %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=filament_temp VALUE=0
{% endif %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=color VALUE='"{color_unknown}"'
_LED_FILAMENT_UNLOADED TOOLHEAD={toolhead}
CONSOLE_ECHO TITLE="Cold pull finished!" MSG="Please remove the filament from the PTFE tube and cut the end off. Do NOT try to load it again." TYPE="warning"
[gcode_macro _USER_START_PRINT_BEFORE_HOMING]
gcode =
[gcode_macro _USER_START_PRINT_AFTER_HEATING_BED]
gcode =
[gcode_macro _USER_START_PRINT_BED_MESH]
gcode =
[gcode_macro _USER_START_PRINT_PARK]
gcode =
[gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER]
gcode =
[gcode_macro _USER_START_PRINT_HEAT_CHAMBER]
description = Uses the extruder sensor to wait for chamber temp. Override the _START_PRINT_HEAT_CHAMBER macro to implement heated chamber handling.
gcode =
{% set chamber_heater_bed_temp = printer["gcode_macro RatOS"].chamber_heater_bed_temp|default(115)|int %}
[gcode_macro _USER_END_PRINT_BEFORE_HEATERS_OFF]
gcode =
[gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF]
gcode =
[gcode_macro _USER_END_PRINT_PARK]
gcode =
[gcode_macro _USER_END_PRINT_FINISHED]
description = User hook for when the print is finished after gcode state has been restored.
gcode =
[gcode_macro _USER_START_PRINT]
gcode =
[gcode_macro _USER_END_START_PRINT]
gcode =
[gcode_macro _USER_START_FEATURE]
gcode =
[gcode_macro _USER_END_FEATURE]
gcode =
[gcode_macro ECHO_T_VARS]
description = Echo Toolhead variables to the console.
gcode =
{% set t = params.T|default(0) %}
RATOS_ECHO MSG="T{t} Variables"
{% for var, value in printer["gcode_macro T%s" % t].items() %}
{action_respond_info(var ~ ": " ~ value)}
{% endfor %}
[gcode_macro ECHO_RATOS_VARS]
description = Echo RatOS variables to the console.
gcode =
{% for var, value in printer["gcode_macro RatOS"].items() %}
{action_respond_info(var ~ ": " ~ value)}
{% endfor %}
[delayed_gcode RATOS_INIT]
initial_duration = 0.1
gcode =
_LED_STANDBY
CALCULATE_PRINTABLE_AREA
INITIAL_FRONTEND_UPDATE
_CHAMBER_FILTER_SANITY_CHECK
[delayed_gcode RATOS_LOGO]
initial_duration = 2
gcode =
HELLO_RATOS
[gcode_macro INITIAL_FRONTEND_UPDATE]
gcode =
{% set color_ok = printer["gcode_macro RatOS"].status_color_ok|string %}
{% set color_error = printer["gcode_macro RatOS"].status_color_error|string %}
{% set color_unknown = printer["gcode_macro RatOS"].status_color_unknown|string %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_unknown}"'
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=color VALUE='"{color_unknown}"'
{% endif %}
{% set t0_sensor = "undefined" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"].filament_detected|lower == "true" %}
{% set t0_sensor = "detected" %}
{% else %}
{% set t0_sensor = "empty" %}
{% endif %}
{% else %}
{% set t0_sensor = "disabled" %}
{% endif %}
{% endif %}
{% set t1_sensor = "undefined" %}
{% if printer["dual_carriage"] is defined and printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"].filament_detected|lower == "true" %}
{% set t1_sensor = "detected" %}
{% else %}
{% set t1_sensor = "empty" %}
{% endif %}
{% else %}
{% set t1_sensor = "disabled" %}
{% endif %}
{% endif %}
{% set svv = printer.save_variables.variables %}
{% if svv.t0_filament is defined and printer["gcode_macro T0"] is defined %}
{% if printer["gcode_macro T0"].filament_name is defined and printer["gcode_macro T0"].filament_type is defined and printer["gcode_macro T0"].filament_temp is defined %}
{% if t0_sensor != "empty" %}
{% set t0_filament_type = svv.t0_filament[0]|default('')|string %}
{% set t0_filament_name = svv.t0_filament[1]|default('')|string %}
{% set t0_filament_temp = svv.t0_filament[2]|default(0)|float %}
{% if t0_filament_name != '' and t0_filament_type != '' and t0_filament_temp > 0 %}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=color VALUE='"{color_ok}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='"{t0_filament_name}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='"{t0_filament_type}"'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE={t0_filament_temp}
{% endif %}
{% else %}
SAVE_VARIABLE VARIABLE=t0_filament VALUE="('""', '""', 0)"
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=filament_temp VALUE=0
{% endif %}
{% endif %}
{% endif %}
{% if svv.t1_filament is defined and printer["gcode_macro T1"] is defined %}
{% if printer["gcode_macro T1"].filament_name is defined and printer["gcode_macro T1"].filament_type is defined and printer["gcode_macro T1"].filament_temp is defined %}
{% if t1_sensor != "empty" %}
{% set t1_filament_type = svv.t1_filament[0]|default('')|string %}
{% set t1_filament_name = svv.t1_filament[1]|default('')|string %}
{% set t1_filament_temp = svv.t1_filament[2]|default(0)|float %}
{% if t1_filament_name != '' and t1_filament_type != '' and t1_filament_temp > 0 %}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=color VALUE='"{color_ok}"'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_name VALUE='"{t1_filament_name}"'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_type VALUE='"{t1_filament_type}"'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_temp VALUE={t1_filament_temp}
{% endif %}
{% else %}
SAVE_VARIABLE VARIABLE=t1_filament VALUE="('""', '""', 0)"
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_name VALUE='""'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_type VALUE='""'
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=filament_temp VALUE=0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro CALCULATE_PRINTABLE_AREA]
gcode =
{% set bed_margin_x = printer["gcode_macro RatOS"].bed_margin_x %}
{% set bed_margin_y = printer["gcode_macro RatOS"].bed_margin_y %}
{% set tool = 0 if printer["gcode_macro T0"] is not defined or printer["gcode_macro T0"].active else 1 %}
{% set max_x = printer.toolhead.axis_maximum.x if printer["dual_carriage"] is defined and tool == 0 else printer.toolhead.axis_maximum.x - bed_margin_x[1] %}
{% if printer["dual_carriage"] is defined %}
{% set max_x = printer.toolhead.axis_maximum.x %}
{% endif %}
DEBUG_ECHO PREFIX="CALCULATE_PRINTABLE_AREA" MSG="printer.toolhead.axis_maximum.x {printer.toolhead.axis_maximum.x}"
{% set max_y = printer.toolhead.axis_maximum.y - bed_margin_y[1]%}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=printable_x_max VALUE={max_x}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=printable_y_max VALUE={max_y}
DEBUG_ECHO PREFIX="CALCULATE_PRINTABLE_AREA" MSG="Printable area calculated: X: 0,{max_x} Y: 0,{max_y}"
[gcode_macro CACHE_TOOLHEAD_SETTINGS]
variable_cache = {"global": {"accel": 1000, "ratio": 0.5, "speed": 50, "scv": 5}}
gcode =
{% set key = "global" %}
{% if params.KEY is defined %}
{% set key = params.KEY %}
{% endif %}
{% set dummy = cache.__setitem__(key, {"accel": printer.toolhead.max_accel, "ratio": printer.toolhead.minimum_cruise_ratio, "speed": printer.toolhead.max_velocity, "scv": printer.toolhead.square_corner_velocity}) %}
SET_GCODE_VARIABLE MACRO=CACHE_TOOLHEAD_SETTINGS VARIABLE=cache VALUE="{cache | pprint | replace("\n", "") | replace("\"", "\\\"")}"
DEBUG_ECHO PREFIX="CACHE_TOOLHEAD_SETTINGS" MSG="Toolhead settings cached for {key}. {printer.toolhead.max_accel} accel, {printer.toolhead.minimum_cruise_ratio} ratio, {printer.toolhead.max_velocity} velocity, {printer.toolhead.square_corner_velocity} scv."
[gcode_macro RESTORE_TOOLHEAD_SETTINGS]
gcode =
{% set key = "global" %}
{% if params.KEY is defined %}
{% set key = params.KEY %}
{% endif %}
{% set values = printer["gcode_macro CACHE_TOOLHEAD_SETTINGS"].cache.__getitem__(key) %}
{% if values is not defined or values == 'None' %}
{ action_raise_error("RESTORE_TOOLHEAD_SETTINGS: Toolhead settings not cached for key '" ~ key ~ "'.") }
{% endif %}
SET_VELOCITY_LIMIT ACCEL={values.accel} MINIMUM_CRUISE_RATIO={values.ratio} VELOCITY={values.speed} SQUARE_CORNER_VELOCITY={values.scv}
DEBUG_ECHO PREFIX="RESTORE_TOOLHEAD_SETTINGS" MSG="Toolhead settings restored. {values.accel} accel, {values.ratio} ratio, {values.speed} velocity, {values.scv} scv."
[gcode_macro SET_MACRO_TRAVEL_SETTINGS]
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set accel = printer["gcode_macro RatOS"].macro_travel_accel %}
SET_VELOCITY_LIMIT ACCEL={accel} MINIMUM_CRUISE_RATIO=0.5 VELOCITY={speed} SQUARE_CORNER_VELOCITY={5}
DEBUG_ECHO PREFIX="SET_MACRO_TRAVEL_SETTINGS" MSG="Macro travel settings set. {accel} accel, {speed} velocity"
[gcode_macro SET_CENTER_KINEMATIC_POSITION]
description = FOR DEBUGGING PURPOSES ONLY. Sets the internal printer kinematic state to the center of all axes regardless of actual physical position.
gcode =
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
RATOS_ECHO MSG="WARNING: ONLY USE SET_CENTER_KINEMATIC_POSITION FOR DEBUGGING PURPOSES. YOU'RE OVERRIDING THE INTERNAL POSITIONING STATE OF THE PRINTER. PROCEED WITH CAUTION AND DO A PROPER G28 WHEN DONE."
SET_GCODE_VARIABLE MACRO=MAYBE_HOME VARIABLE=is_kinematic_position_overriden VALUE=True
{% if printer["dual_carriage"] is not defined %}
SET_KINEMATIC_POSITION X={printable_x_max / 2} Y={printable_y_max / 2} Z={printer.toolhead.axis_maximum.z / 2}
{% else %}
IDEX_SET_CENTER_KINEMATIC_POSITION
{% endif %}
[gcode_macro IDEX_SET_CENTER_KINEMATIC_POSITION]
description = FOR DEBUGGING PURPOSES ONLY. Sets the internal printer kinematic state to the center of all axes regardless of actual physical position.
gcode =
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
RATOS_ECHO MSG="WARNING: ONLY USE SET_CENTER_KINEMATIC_POSITION FOR DEBUGGING PURPOSES. YOU'RE OVERRIDING THE INTERNAL POSITIONING STATE OF THE PRINTER. PROCEED WITH CAUTION AND DO A PROPER G28 WHEN DONE."
SET_GCODE_VARIABLE MACRO=MAYBE_HOME VARIABLE=is_kinematic_position_overriden VALUE=True
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
SET_KINEMATIC_POSITION X={center_x - (center_x / 2)} Y={printable_y_max / 2} Z={printer.toolhead.axis_maximum.z / 2}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
SET_KINEMATIC_POSITION X={center_x + (center_x / 2)} Y={printable_y_max / 2} Z={printer.toolhead.axis_maximum.z / 2}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
[gcode_macro VERIFY_HYBRID_INVERTED]
gcode =
{% set inverted = False %}
{% if printer.configfile.settings.ratos_hybrid_corexy is defined and printer.configfile.settings.ratos_hybrid_corexy.inverted is defined %}
{% if printer.configfile.settings.ratos_hybrid_corexy.inverted|lower == 'true' %}
{% set inverted = True %}
{% endif %}
{% endif %}
{% if inverted == False %}
{ action_emergency_stop("ratos_hybrid_corexy NOT INVERTED! Inverted hybrid core-xy bugfix not detected.") }
{% endif %}
[gcode_macro RATOS_ECHO]
gcode =
{% set prefix = "RatOS" %}
{% set debug = params.DEBUG|default(0)|int %}
{% if params.PREFIX is defined %}
{% set prefix = prefix ~ " | " ~ params.PREFIX %}
{% endif %}
{% set prefix = prefix ~ ":" %}
{% set msg = "" %}
{% if params.MSG is defined %}
{% set msg = params.MSG %}
{% else %}
{% set msg = "No msg parameter provided (this is a bug or unintended use)." %}
{% endif %}
{% if not debug %}
M117 {prefix} {msg}
{% endif %}
RATOS_LOG PREFIX="{prefix}" MSG="{msg}"
{% if not debug %}
RESPOND PREFIX="{prefix}" MSG="{msg}"
{% else %}
CONSOLE_ECHO TITLE="{prefix}" TYPE="debug" MSG="{msg}"
{% endif %}
[gcode_macro ENABLE_DEBUG]
gcode =
SET_GCODE_VARIABLE MACRO=DEBUG_ECHO VARIABLE=enabled VALUE=True
SET_GCODE_VARIABLE MACRO=DEBUG_ECHO VARIABLE=prefix_filter VALUE="'{params.FILTER|default('')|lower}'"
RATOS_ECHO PREFIX="DEBUG" MSG="Debugging enabled."
[gcode_macro DISABLE_DEBUG]
gcode =
SET_GCODE_VARIABLE MACRO=DEBUG_ECHO VARIABLE=enabled VALUE=False
RATOS_ECHO PREFIX="DEBUG" MSG="Debugging disabled."
[gcode_macro DEBUG_ECHO]
variable_enabled = False
variable_prefix_filter = ''
gcode =
{% set prefix = "DEBUG" %}
{% if params.PREFIX is defined %}
{% set prefix = prefix ~ " - " ~ params.PREFIX %}
{% endif %}
{% if enabled and (prefix_filter|lower == '' or prefix_filter|lower in params.PREFIX|lower) %}
RATOS_ECHO PREFIX="{prefix}" MSG="{params.MSG}" DEBUG=1
{% endif %}
[gcode_macro START_FEATURE]
gcode =
DEBUG_ECHO PREFIX="G-Code" MSG="Start {params.FEATURE} feature gcode"
{% set scv = printer.toolhead.square_corner_velocity|int|default(5) %}
{% set accel = printer.toolhead.max_accel|int|default(10000) %}
{% set ratio = printer.toolhead.minimum_cruise_ratio|float|default(0.5) %}
SET_GCODE_VARIABLE MACRO="END_FEATURE" VARIABLE="scv" VALUE={scv}
SET_GCODE_VARIABLE MACRO="END_FEATURE" VARIABLE="accel" VALUE={accel}
SET_GCODE_VARIABLE MACRO="END_FEATURE" VARIABLE="ratio" VALUE={ratio}
_USER_START_FEATURE FEATURE="{params.FEATURE}"
[gcode_macro END_FEATURE]
variable_scv = 5
variable_accel = 10000
variable_ratio = 0.5
gcode =
DEBUG_ECHO PREFIX="G-Code" MSG="End {params.FEATURE} feature gcode"
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={scv} ACCEL={accel} MINIMUM_CRUISE_RATIO={ratio}
_USER_END_FEATURE FEATURE="{params.FEATURE}" SCV={scv} ACCEL={accel} RATIO={ratio}
[gcode_macro _ON_LAYER_CHANGE]
variable_layer_number = 0
description = INTERNAL USE ONLY. Call it from the slicers after layer change custom gcode
gcode =
{% set layer = params.LAYER|int %}
SET_GCODE_VARIABLE MACRO=_ON_LAYER_CHANGE VARIABLE=layer_number VALUE={layer}
SET_PRINT_STATS_INFO CURRENT_LAYER={layer}
[gcode_macro _LEARN_MORE_CALIBRATION]
gcode =
{% set link_url = "https://os.ratrig.com/docs/configuration/calibration" %}
{% set link_text = "RatOS Calibration Macros" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="INFO" MSG={line_1}
[gcode_macro _LEARN_MORE_CHAMBER_FILTER]
gcode =
{% set link_url = "https://os.ratrig.com/docs/configuration/chamber_filter" %}
{% set link_text = "RatOS Chamber Filter Control" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="INFO" MSG={line_1}
[gcode_macro _LEARN_MORE_FILAMENT]
gcode =
{% set link_url = "https://os.ratrig.com/docs/configuration/filaments" %}
{% set link_text = "RatOS Filament Macros" %}
{% set line_1 = '"Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="INFO" MSG={line_1}
[gcode_macro _CONSOLE_SAVE_CONFIG]
gcode =
M118 Click SAVE_CONFIG to save the settings to your printer.cfg.
[gcode_macro SAVE_Z_OFFSET]
gcode =
{% if printer.configfile.settings.beacon is defined %}
_BEACON_SAVE_MULTIPLIER
{% else %}
Z_OFFSET_APPLY_PROBE
{% endif %}
[gcode_macro _LOAD_RATOS_SKEW_PROFILE]
gcode =
{% set ratos_skew_profile = printer["gcode_macro RatOS"].skew_profile|default("") %}
{% if ratos_skew_profile != "" %}
{% if printer.configfile.config["skew_correction %s" % ratos_skew_profile] is defined %}
SKEW_PROFILE LOAD={ratos_skew_profile}
GET_CURRENT_SKEW
{% else %}
{% set line_1 = '"Could not find skew profile %s!_N_Clearing skew correction."' % ratos_skew_profile %}
CONSOLE_ECHO TITLE="Missing skew profile!" TYPE="warning" MSG={line_1}
SET_SKEW CLEAR=1
{% endif %}
{% endif %}
[gcode_macro M601]
gcode =
PAUSE
[gcode_macro PAUSE]
description = Pauses the print
rename_existing = PAUSE_BASE
variable_extrude = 1.5
variable_retract = 1.5
variable_fan_speed = 0
variable_idex_mode = ""
variable_idex_toolhead = 0
variable_idex_toolhead_x = 0.0
variable_idex_toolhead_y = 0.0
variable_idex_toolhead_z = 0.0
gcode =
{% set runout_detected = true if params.RUNOUT|default(false)|lower == 'true' else false %}
_LED_PAUSE
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set idex_toolhead = 1 if idex_mode == 'primary' else 0 %}
{% endif %}
{% if printer["dual_carriage"] is not defined %}
SAVE_GCODE_STATE NAME=PAUSE_state
{% else %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_mode VALUE='"{idex_mode}"'
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead VALUE={idex_toolhead}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead_x VALUE={printer.gcode_move.gcode_position.x|float}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead_y VALUE={printer.gcode_move.gcode_position.y|float}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead_z VALUE={printer.gcode_move.gcode_position.z|float}
DEBUG_ECHO PREFIX="PAUSE" MSG="idex_mode: {idex_mode}, idex_toolhead: {idex_toolhead}, idex_toolhead_x: {idex_toolhead_x}, idex_toolhead_y: {idex_toolhead_y}, idex_toolhead_z: {idex_toolhead_z}"
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
CACHE_TOOLHEAD_SETTINGS KEY="pause"
SET_MACRO_TRAVEL_SETTINGS
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set current_z = printer.toolhead.position.z|float %}
{% if current_z < (max_z - 20.0) %}
{% set z_safe = 20.0 %}
{% else %}
{% set z_safe = max_z - current_z %}
{% endif %}
PAUSE_BASE
{% if printer["dual_carriage"] is not defined %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan"].speed|float}
{% else %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan_generic part_fan_t0"].speed|float}
{% else %}
{% if idex_toolhead == 0 %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan_generic part_fan_t0"].speed|float}
{% else %}
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=fan_speed VALUE={printer["fan_generic part_fan_t1"].speed|float}
{% endif %}
{% endif %}
{% endif %}
M106 S0
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' else false %}
{% if idex_mode != '' %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' else false %}
{% else %}
{% if printer.toolhead.extruder == 'extruder1' %}
{% set can_extrude = true if printer['extruder1'].can_extrude|lower == 'true' else false %}
{% endif %}
{% endif %}
{% endif %}
{% set R = printer["gcode_macro PAUSE"].retract|float %}
{% if can_extrude %}
G91
G1 E-{R} F2100
G90
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set pause_print_park_x = printer["gcode_macro RatOS"].pause_print_park_x %}
{% set pause_print_park_in = printer["gcode_macro RatOS"].pause_print_park_in %}
{% if runout_detected %}
{% set pause_print_park_x = printer["gcode_macro RatOS"].runout_park_x %}
{% set pause_print_park_in = printer["gcode_macro RatOS"].runout_park_in %}
{% endif %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
DEBUG_ECHO PREFIX="PAUSE" MSG="z_speed: {z_speed}, pause_print_park_x: {pause_print_park_x}, pause_print_park_in: {pause_print_park_in}, default_toolhead: {default_toolhead}"
{% if "xyz" in printer.toolhead.homed_axes %}
G91
G1 Z{z_safe} F{z_speed}
G90
{% if printer["dual_carriage"] is not defined %}
_PARK LOCATION={pause_print_park_in} X={pause_print_park_x}
{% else %}
{% set parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
_IDEX_SINGLE X={parking_position}
{% else %}
PARK_TOOLHEAD
{% endif %}
_PARK LOCATION={pause_print_park_in} X={pause_print_park_x}
{% endif %}
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="pause"
[gcode_macro RESUME]
description = Resumes the print if the printer is paused.
rename_existing = RESUME_BASE
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set target_idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set target_idex_mode = printer["gcode_macro PAUSE"].idex_mode|lower %}
{% endif %}
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' else false %}
{% if target_idex_mode != '' %}
{% if target_idex_mode == 'copy' or target_idex_mode == 'mirror' %}
{% set can_extrude = true if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' else false %}
{% else %}
{% if printer.toolhead.extruder == 'extruder1' %}
{% set can_extrude = true if printer['extruder1'].can_extrude|lower == 'true' else false %}
{% endif %}
{% endif %}
{% endif %}
{% set fan_speed = printer["gcode_macro PAUSE"].fan_speed|float %}
{% if printer["dual_carriage"] is not defined %}
M106 S{(fan_speed * 255)}
{% else %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed}
{% else %}
{% if params.TOOLHEAD is defined %}
{% if params.TOOLHEAD == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed}
{% else %}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed}
{% endif %}
{% else %}
{% if printer["gcode_macro PAUSE"].idex_toolhead == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed}
{% else %}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed}
{% endif %}
{% endif %}
{% endif %}
M106.1 S{fan_speed}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if target_idex_mode == "copy" %}
_IDEX_COPY DANCE=0
{% elif target_idex_mode == "mirror" %}
_IDEX_MIRROR DANCE=0
{% else %}
{% if params.TOOLHEAD is defined %}
_SELECT_TOOL T={params.TOOLHEAD} X=-1 Y=-1 TOOLSHIFT=false
{% else %}
_SELECT_TOOL T={printer["gcode_macro PAUSE"].idex_toolhead} X=-1 Y=-1 TOOLSHIFT=false
{% endif %}
{% endif %}
{% set x = printer["gcode_macro PAUSE"].idex_toolhead_x|float %}
{% set y = printer["gcode_macro PAUSE"].idex_toolhead_y|float %}
{% set z = printer["gcode_macro PAUSE"].idex_toolhead_z|float %}
G1 X{x} Y{y} Z{z} F{speed}
{% if params.TOOLHEAD is defined %}
SAVE_GCODE_STATE NAME=PAUSE_STATE
{% endif %}
{% endif %}
{% if params.TOOLHEAD is not defined %}
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
{% if can_extrude %}
G91
G1 E{E} F2100
G90
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is not defined %}
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1 MOVE_SPEED={speed}
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=True
RESUME_BASE
_LED_PRINTING
[gcode_macro CANCEL_PRINT]
description = Cancels the printer
rename_existing = CANCEL_PRINT_BASE
gcode =
END_PRINT
TURN_OFF_HEATERS
CLEAR_PAUSE
CANCEL_PRINT_BASE
[gcode_macro START_PRINT]
description = Start print procedure, use this in your Slicer.
variable_post_processor_version = 2
variable_is_printing_gcode = False
variable_both_toolheads = True
variable_object_xoffset = 0
variable_first_x = -1
variable_first_y = -1
variable_total_toolshifts = 0
variable_initial_tool = 0
variable_extruder_first_layer_temp = ""
variable_extruder_other_layer_temp = ""
gcode =
{% if "xyz" in printer.toolhead.homed_axes and printer["dual_carriage"] is defined and printer["gcode_macro _VAOC"] is defined %}
{% if printer["gcode_macro _VAOC"].is_started|default(true)|lower == 'true' %}
_VAOC_END
{% endif %}
{% endif %}
_LED_START_PRINTING
CACHE_TOOLHEAD_SETTINGS KEY="start_print"
_USER_START_PRINT { rawparams }
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set bed_heat_soak_time = printer["gcode_macro RatOS"].bed_heat_soak_time|default(0)|int %}
{% set hotend_heat_soak_time = printer["gcode_macro RatOS"].hotend_heat_soak_time|default(0)|int %}
{% set z_probe_stowable = printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %}
{% if printer["dual_carriage"] is defined %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
{% endif %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set X0 = params.X0|default(-1)|float %}
{% set X1 = params.X1|default(-1)|float %}
{% set Y0 = params.Y0|default(-1)|float %}
{% set Y1 = params.Y1|default(-1)|float %}
{% if first_x == -1 or first_y == -1 %}
{% set first_x = params.FIRST_X|default(-1)|float %}
{% set first_y = params.FIRST_Y|default(-1)|float %}
{% endif %}
{% set total_toolshifts = params.TOTAL_TOOLSHIFTS|default(0)|int %}
{% set initial_tool = params.INITIAL_TOOL|default(default_toolhead)|int %}
{% set start_chamber_temp = params.START_CHAMBER_TEMP|default(0)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set bed_temp = params.BED_TEMP|default(printer.heater_bed.target, true)|float %}
{% set total_layer_count = params.TOTAL_LAYER_COUNT|default(0)|int %}
{% set extruder_first_layer_temp = (params.EXTRUDER_TEMP|default("")).split(",") %}
RATOS_ECHO MSG="First print coordinates X:{first_x} Y:{first_y}"
{% if params.TOTAL_LAYER_COUNT is not defined %}
{% set link_url = "https://os.ratrig.com/docs/slicers" %}
{% set link_text = "RatOS Slicer Configuration" %}
{% set line_1 = '"Your slicer gcode settings are not up to date._N_Learn more about the %s"' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="Incomplete Slicer Configuration detected" TYPE="warning" MSG={line_1}
{% endif %}
SET_PRINT_STATS_INFO CURRENT_LAYER=1
SET_GCODE_VARIABLE MACRO=_ON_LAYER_CHANGE VARIABLE=layer_number VALUE=1
{% if total_layer_count > 0 %}
SET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set swap_toolheads = true if printer["gcode_macro _IDEX_REMAP_TOOLHEADS"].enabled|default(false)|lower == 'true' else false %}
{% if swap_toolheads %}
{% set initial_tool = 0 if initial_tool == 1 else 1 %}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE=True
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE=True
{% endif %}
{% set both_toolheads = true %}
{% if total_toolshifts == 0 %}
{% set both_toolheads = false %}
{% endif %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
_IDEX_SINGLE X={parking_position}
{% endif %}
{% if both_toolheads and (idex_mode == "copy" or idex_mode == "mirror") %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Gcode tool changes found. Copy and mirror mode do not support toolchanges.")}
{% endif %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set both_toolheads = true %}
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=initial_tool VALUE={initial_tool}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=first_x VALUE={first_x}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=first_y VALUE={first_y}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=total_toolshifts VALUE={total_toolshifts}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=both_toolheads VALUE={both_toolheads}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=extruder_first_layer_temp VALUE="'{params.EXTRUDER_TEMP}'"
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=extruder_other_layer_temp VALUE="'{params.EXTRUDER_OTHER_LAYER_TEMP}'"
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=_TOOLCHANGE VARIABLE=toolshift_count VALUE=0
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set svv = printer.save_variables.variables %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set stepper_x_position_min = printer.configfile.settings.stepper_x.position_min|float %}
{% set stepper_x_position_endstop = printer.configfile.settings.stepper_x.position_endstop|float %}
{% set dual_carriage_position_max = printer.configfile.settings.dual_carriage.position_max|float %}
{% set dual_carriage_position_endstop = printer.configfile.settings.dual_carriage.position_endstop|float %}
{% set x_parking_space = parking_position_t0 - (stepper_x_position_endstop , stepper_x_position_min)|max %}
{% set dc_parking_space = (dual_carriage_position_endstop , dual_carriage_position_max)|min - parking_position_t1 %}
{% if svv.idex_xoffset|abs >= (x_parking_space - 0.5) or svv.idex_xoffset|abs >= (dc_parking_space - 0.5) %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Toolhead x-offset is too high for the available parking space. Calibrate your X and DC endstop positions and make sure you stay below 1mm." % (copy_mode_max_width)) }
{% endif %}
{% endif %}
{% if (idex_mode == "copy" or idex_mode == "mirror") and printer.configfile.settings.ratos.enable_gcode_transform %}
{% if params.MIN_X is not defined or params.MAX_X is not defined %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Something went wrong! Missing important post processor start print parameter!") }
{% endif %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=object_xoffset VALUE=0
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set boundary_box_min_x = params.MIN_X|default(0)|float %}
{% set boundary_box_max_x = params.MAX_X|default(printable_x_max)|float %}
{% set svv = printer.save_variables.variables %}
{% if default_toolhead == 0 %}
{% set boundary_box_max_x = boundary_box_max_x + svv.idex_xoffset %}
{% else %}
{% set boundary_box_min_x = boundary_box_min_x - svv.idex_xoffset %}
{% endif %}
{% set center_x = printable_x_max / 2.0 %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% set object_width = boundary_box_max_x - boundary_box_min_x %}
{% set copy_mode_max_width = center_x %}
{% set mirror_mode_max_width = center_x - safe_distance / 2.0 %}
DEBUG_ECHO PREFIX="START_PRINT" MSG="OBJECT_WIDTH: {object_width} BOUNDARY_BOX_MIN_X: {boundary_box_min_x} BOUNDARY_BOX_MAX_X: {boundary_box_max_x} CENTER_X: {center_x} SAFE_DISTANCE: {safe_distance}"
{% if idex_mode == "copy" and object_width > copy_mode_max_width %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Object is too big for copy mode! Max supported width is %s mm" % (copy_mode_max_width)) }
{% endif %}
{% if idex_mode == "mirror" and object_width > mirror_mode_max_width %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Object is too big for mirror mode! Max supported width is %s mm" % (mirror_mode_max_width)) }
{% endif %}
{% if printer["gcode_macro RatOS"].auto_center_subject|default(false)|lower == 'true' %}
{% set object_xoffset = (printable_x_max - boundary_box_max_x - boundary_box_min_x) / 2 %}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=object_xoffset VALUE={object_xoffset}
{% endif %}
{% endif %}
{% set has_initial_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % initial_tool] is defined else false %}
{% if has_initial_toolhead_filament_sensor %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % initial_tool].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % initial_tool].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s filament sensor is empty." % (initial_tool)) }
{% endif %}
{% endif %}
{% endif %}
{% set has_initial_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t%s" % initial_tool] is defined else false %}
{% if has_initial_bowden_filament_sensor %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % initial_tool].enabled|lower == "true" %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % initial_tool].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s bowden sensor is empty." % (initial_tool)) }
{% endif %}
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is defined and both_toolheads %}
{% set has_secondary_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)] is defined else false %}
{% if has_secondary_toolhead_filament_sensor %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s filament sensor is empty." % (1 if initial_tool == 0 else 0)) }
{% endif %}
{% endif %}
{% endif %}
{% set has_secondary_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)] is defined else false %}
{% if has_secondary_bowden_filament_sensor %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].enabled|lower == "true" %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % (1 if initial_tool == 0 else 0)].filament_detected|lower != "true" %}
_LED_START_PRINTING_ERROR
{ action_raise_error("Filament not detected! Toolhead T%s bowden sensor is empty." % (1 if initial_tool == 0 else 0)) }
{% endif %}
{% endif %}
{% endif %}
{% endif %}
_CHAMBER_FILTER_ON AT="before_print_start"
{% if printer["dual_carriage"] is defined %}
{% if printer["gcode_macro _IDEX_JOIN_SPOOLS"].enabled|default(false)|lower == 'true' %}
{% if both_toolheads %}
RATOS_ECHO MSG="Spool join is not possible if both toolheads are in use!"
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% endif %}
{% endif %}
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if idex_mode == '' %}
_SET_TOOLHEAD_OFFSET T={default_toolhead} MOVE={1 if "xyz" in printer.toolhead.homed_axes else 0}
{% endif %}
{% endif %}
CLEAR_PAUSE
{% if printer["gcode_macro RatOS"].force_absolute_position|lower == 'true' %}
G90
{% endif %}
SAVE_GCODE_STATE NAME=start_print_state
G21
G90
M82
_USER_START_PRINT_BEFORE_HOMING { rawparams }
{% if z_probe_stowable == true %}
STOWABLE_PROBE_BEGIN_BATCH
{% endif %}
MAYBE_HOME
_Z_HOP
{% if idex_mode != '' and not (printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
PARK_TOOLHEAD
{% endif %}
{% if chamber_temp > 0 %}
{% if printer["fan_generic filter"] is defined %}
{% if printer["gcode_macro RatOS"].chamber_heater_filter_fan_speed|default(0)|float > 0 %}
SET_FAN_SPEED FAN=filter SPEED={printer["gcode_macro RatOS"].chamber_heater_filter_fan_speed|default(0)|float}
{% endif %}
{% endif %}
_CHAMBER_HEATER_ON START_CHAMBER_TEMP={start_chamber_temp} CHAMBER_TEMP={chamber_temp}
_USER_START_PRINT_HEAT_CHAMBER { rawparams } CHAMBER_TEMP={chamber_temp}
{% endif %}
_START_PRINT_BEFORE_HEATING_BED T={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
RATOS_ECHO MSG="Heating bed..."
M190 S{bed_temp}
{% if bed_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking bed for {bed_heat_soak_time} seconds..."
G4 P{(bed_heat_soak_time * 1000)}
{% endif %}
_USER_START_PRINT_AFTER_HEATING_BED { rawparams }
_START_PRINT_AFTER_HEATING_BED T={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
_USER_START_PRINT_BED_MESH { rawparams } X0={X0} X1={X1} Y0={Y0} Y1={Y1}
_START_PRINT_BED_MESH X0={X0} X1={X1} Y0={Y0} Y1={Y1} T={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
{% if z_probe_stowable == true %}
STOWABLE_PROBE_END_BATCH
{% endif %}
{% if idex_mode == '' %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={extruder_first_layer_temp[0]|float}
{% else %}
{% if initial_tool == 0 or both_toolheads or (default_toolhead == 0 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={extruder_first_layer_temp[0]|float}
{% endif %}
{% if initial_tool == 1 or both_toolheads or (default_toolhead == 1 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={extruder_first_layer_temp[1]|float}
{% endif %}
{% endif %}
_USER_START_PRINT_PARK { rawparams }
_START_PRINT_PARK
RATOS_ECHO MSG="Heating Extruder..."
{% if idex_mode == '' %}
TEMPERATURE_WAIT SENSOR="extruder" MINIMUM={extruder_first_layer_temp[0]|float} MAXIMUM={extruder_first_layer_temp[0]|float + 5}
{% else %}
{% if initial_tool == 0 or both_toolheads or (default_toolhead == 0 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
TEMPERATURE_WAIT SENSOR="extruder" MINIMUM={extruder_first_layer_temp[0]|float} MAXIMUM={extruder_first_layer_temp[0]|float + 5}
{% endif %}
{% if initial_tool == 1 or both_toolheads or (default_toolhead == 1 and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero) %}
TEMPERATURE_WAIT SENSOR="extruder1" MINIMUM={extruder_first_layer_temp[1]|float} MAXIMUM={extruder_first_layer_temp[1]|float + 5}
{% endif %}
{% endif %}
{% if hotend_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking hotend for {hotend_heat_soak_time} seconds..."
G4 P{(hotend_heat_soak_time * 1000)}
{% endif %}
{% if idex_mode == '' %}
_LED_PRINTING
{% else %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
_LED_PRINTING
{% else %}
{% if both_toolheads %}
_LED_PRINTING TOOLHEAD={initial_tool}
{% if toolchange_standby_temp > -1 %}
_LED_TOOLHEAD_STANDBY TOOLHEAD={0 if initial_tool == 1 else 1}
{% else %}
_LED_PRINTING TOOLHEAD={0 if initial_tool == 1 else 1}
{% endif %}
{% else %}
_LED_PRINTING TOOLHEAD={initial_tool}
_LED_DEACTIVATE_TOOLHEAD TOOLHEAD={0 if initial_tool == 1 else 1}
{% endif %}
{% endif %}
{% endif %}
_USER_START_PRINT_AFTER_HEATING_EXTRUDER { rawparams } X0={X0} X1={X1} Y0={Y0} Y1={Y1}
_START_PRINT_AFTER_HEATING_EXTRUDER X0={X0} X1={X1} Y0={Y0} Y1={Y1} INITIAL_TOOLHEAD={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}
{% if idex_mode != '' %}
{% if not both_toolheads %}
{% if initial_tool != default_toolhead %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
{% endif %}
{% endif %}
{% endif %}
{% if idex_mode != '' %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% if toolchange_standby_temp > -1 %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if initial_tool == 1 else 'extruder1'} TARGET={toolchange_standby_temp}
{% endif %}
{% endif %}
{% endif %}
{% if idex_mode != '' %}
{% set x_offset = printer.toolhead.position.x|float - printer.gcode_move.gcode_position.x|float %}
{% endif %}
RESTORE_GCODE_STATE NAME=start_print_state
{% if idex_mode != '' %}
{% set act_idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% if act_idex_mode == "copy" or act_idex_mode == "mirror" %}
SET_GCODE_OFFSET X={x_offset} MOVE=0
{% endif %}
{% endif %}
{% if idex_mode != '' %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% if idex_mode == "copy" and idex_mode != act_idex_mode %}
_IDEX_COPY DANCE=0
{% elif idex_mode == "mirror" and idex_mode != act_idex_mode %}
_IDEX_MIRROR DANCE=0
{% endif %}
{% if printer["gcode_macro RatOS"].auto_center_subject|default(false)|lower == 'true' %}
RATOS_ECHO MSG="Adjusting object x-offset by {(object_xoffset)} mm"
SET_GCODE_OFFSET X_ADJUST={object_xoffset} MOVE=0
{% endif %}
{% else %}
_SELECT_TOOL T={initial_tool} TOOLSHIFT=false
{% if initial_tool != default_toolhead %}
{% set svv = printer.save_variables.variables %}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE={default_toolhead}
_SET_TOOLHEAD_OFFSET T={initial_tool} MOVE=0
{% endif %}
{% endif %}
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
_BEACON_SET_NOZZLE_TEMP_OFFSET RESET=True
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={initial_tool}
{% endif %}
_SET_EXTRUSION_MODE
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=True
{% if printer["gcode_macro _SELECT_TOOL"] is defined %}
SET_GCODE_VARIABLE MACRO=_SELECT_TOOL VARIABLE=last_timestamp VALUE={printer["print_stats"].print_duration}
{% endif %}
_USER_END_START_PRINT { rawparams }
G92 E0
_CHAMBER_FILTER_ON AT="after_print_start"
RATOS_ECHO MSG="Printing..."
[gcode_macro _START_PRINT_BEFORE_HEATING_BED]
gcode =
{% set target_idex_mode = params.IDEX_MODE|default("")|lower %}
{% set initial_toolhead = params.T|default(default_toolhead)|int %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set min_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float %}
{% set max_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float + 5 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set idex_mode = '' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set auto_z_offset_calibration = False %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro _VAOC"] is defined %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% if printer["gcode_macro _VAOC"].auto_z_offset_calibration|default("false")|lower == 'true' and is_fixed %}
{% if target_idex_mode != "copy" and target_idex_mode != "mirror" %}
{% if both_toolheads or initial_toolhead != default_toolhead %}
{% set auto_z_offset_calibration = True %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set is_stowable_probe = true if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' else false %}
{% if printer["gcode_macro RatOS"].preheat_extruder|lower == 'true' %}
RATOS_ECHO MSG="Pre-heating extruder..."
{% if printer["dual_carriage"] is defined %}
{% if auto_z_offset_calibration %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={min_temp}
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={min_temp}
{% else %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET={min_temp}
{% endif %}
{% else %}
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={min_temp}
{% endif %}
{% endif %}
{% if not is_stowable_probe %}
{% if printer["dual_carriage"] is defined and act_t != default_toolhead %}
_SELECT_TOOL T={default_toolhead} X={safe_home_x} Y={safe_home_y} TOOLSHIFT=True
{% endif %}
RATOS_ECHO MSG="Heat soaking z probe..."
{% if auto_z_offset_calibration %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% if default_toolhead == 0 %}
_SELECT_TOOL T=0 TOOLSHIFT=false
G1 X{safe_home_x - safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{safe_home_x + safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
{% elif default_toolhead == 1 %}
_SELECT_TOOL T=1 TOOLSHIFT=false
G1 X{safe_home_x + safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{safe_home_x - safe_distance / 2} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
{% endif %}
{% else %}
_MOVE_TO_SAFE_Z_HOME
{% endif %}
G0 Z2 F{z_speed}
{% endif %}
[gcode_macro _START_PRINT_AFTER_HEATING_BED]
gcode =
{% set target_idex_mode = params.IDEX_MODE|default("")|lower %}
{% set initial_toolhead = params.T|default(default_toolhead)|int %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set min_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float %}
{% set max_temp = printer["gcode_macro RatOS"].preheat_extruder_temp|float + 5 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set auto_z_offset_calibration = False %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro _VAOC"] is defined %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% if printer["gcode_macro _VAOC"].auto_z_offset_calibration|default("false")|lower == 'true' and is_fixed %}
{% if target_idex_mode != "copy" and target_idex_mode != "mirror" %}
{% if both_toolheads or initial_toolhead != default_toolhead %}
{% set auto_z_offset_calibration = True %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_wipe_before_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_wipe_before_true_zero|default(false)|lower == 'true' else false %}
{% if printer["gcode_macro RatOS"].preheat_extruder|lower == 'true' %}
RATOS_ECHO MSG="Waiting for extruder to be preheated..."
{% if printer["dual_carriage"] is defined %}
{% if auto_z_offset_calibration %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={max_temp}
TEMPERATURE_WAIT SENSOR=extruder1 MINIMUM={min_temp} MAXIMUM={max_temp}
{% else %}
{% if default_toolhead == 0 %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={max_temp}
{% else %}
TEMPERATURE_WAIT SENSOR=extruder1 MINIMUM={min_temp} MAXIMUM={max_temp}
{% endif %}
{% endif %}
{% else %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={max_temp}
{% endif %}
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
_Z_HOP
{% endif %}
{% if auto_z_offset_calibration %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
_SELECT_TOOL T={default_toolhead} X={safe_home_x} Y={safe_home_y} TOOLSHIFT=True
PARK_TOOLHEAD
_CLEANING_MOVE TOOLHEAD={default_toolhead}
_SELECT_TOOL T={0 if default_toolhead == 1 else 1} X={parking_position_t0 if default_toolhead == 1 else parking_position_t1} Y=0 TOOLSHIFT=false
_CLEANING_MOVE TOOLHEAD={0 if default_toolhead == 1 else 1}
_VAOC_CALIBRATE_Z_OFFSET AUTO_Z_OFFSET=True
_SELECT_TOOL T={default_toolhead} X={safe_home_x} Y={safe_home_y} TOOLSHIFT=false
{% endif %}
{% set needs_rehoming = False %}
{% if printer.z_tilt is defined and not printer.z_tilt.applied %}
RATOS_ECHO MSG="Adjusting Z tilt..."
Z_TILT_ADJUST
RATOS_ECHO MSG="Rehoming Z after Z tilt adjustment..."
{% set needs_rehoming = True %}
{% endif %}
{% if printer.quad_gantry_level is defined and not printer.quad_gantry_level.applied %}
RATOS_ECHO MSG="Running quad gantry leveling..."
QUAD_GANTRY_LEVEL
RATOS_ECHO MSG="Rehoming Z after quad gantry leveling..."
{% set needs_rehoming = True %}
{% endif %}
{% if needs_rehoming %}
G28 Z
{% endif %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero %}
{% if beacon_contact_wipe_before_true_zero %}
_START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE
{% endif %}
_START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE
{% endif %}
[gcode_macro _START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE]
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
G0 Z5 F{z_speed}
G0 X50 Y10 F{speed}
PROBE PROBE_METHOD=contact SAMPLES=1
BEACON_QUERY
[gcode_macro _START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE]
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_contact_true_zero_temp = printer["gcode_macro RatOS"].beacon_contact_true_zero_temp|default(150)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_true_zero_location = printer["gcode_macro RatOS"].beacon_contact_true_zero_location|default("front")|lower %}
{% set beacon_contact_true_zero_margin_x = printer["gcode_macro RatOS"].beacon_contact_true_zero_margin_x|default(30)|int %}
{% set beacon_contact_wipe_before_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_wipe_before_true_zero|default(false)|lower == 'true' else false %}
{% if beacon_contact_wipe_before_true_zero %}
{% if printer.beacon.last_probe_result|lower == "ok" %}
{% set last_z_offset = printer.beacon.last_z_result %}
RATOS_ECHO MSG="Auto calibration nozzle wipe with probe result {last_z_offset}..."
G0 Z{(0.2 + last_z_offset)} F{z_speed}
G0 X70 F300
{% else %}
RATOS_ECHO MSG="Skipping auto calibration nozzle wipe because probing failed!"
{% endif %}
{% endif %}
G0 Z5 F{z_speed}
_MOVE_TO_SAFE_Z_HOME
RATOS_ECHO MSG="Heating extruder to probing temperature..."
SET_HEATER_TEMPERATURE HEATER={"extruder" if default_toolhead == 0 else "extruder1"} TARGET={beacon_contact_true_zero_temp}
TEMPERATURE_WAIT SENSOR={"extruder" if default_toolhead == 0 else "extruder1"} MINIMUM={beacon_contact_true_zero_temp} MAXIMUM={beacon_contact_true_zero_temp + 5}
RATOS_ECHO MSG="Beacon contact auto calibration..."
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
G0 Z5 F{z_speed}
[gcode_macro _START_PRINT_AFTER_HEATING_EXTRUDER]
gcode =
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set first_x = printer["gcode_macro START_PRINT"].first_x|default(-1)|float %}
{% set first_y = printer["gcode_macro START_PRINT"].first_y|default(-1)|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_x = printable_x_max / 2.0 %}
{% set center_y = printable_y_max / 2.0 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% if printer["dual_carriage"] is defined %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% endif %}
{% set X0 = params.X0|default(-1)|int %}
{% set X1 = params.X1|default(-1)|int %}
{% set Y0 = params.Y0|default(-1)|int %}
{% set Y1 = params.Y1|default(-1)|int %}
{% set idex_mode = params.IDEX_MODE|default('')|lower %}
{% set both_toolheads = true if params.BOTH_TOOLHEADS|default(true)|lower=='true' else false %}
{% set initial_toolhead = params.INITIAL_TOOLHEAD|default(default_toolhead)|int %}
{% if idex_mode == '' %}
_PRIME
{% else %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
RATOS_ECHO PREFIX="IDEX" MSG="using combined prime offset for IDEX {idex_mode} mode"
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% else %}
{% if both_toolheads %}
{% if initial_toolhead == 0 %}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T1"
_SELECT_TOOL T=1 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T0"
_SELECT_TOOL T=0 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% else %}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T0"
_SELECT_TOOL T=0 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T1"
_SELECT_TOOL T=1 TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% endif %}
{% else %}
RATOS_ECHO PREFIX="IDEX" MSG="using prime offset for T{initial_toolhead}"
_SELECT_TOOL T={initial_toolhead} TOOLSHIFT=false
_PRIME INITIAL_TOOLHEAD={initial_toolhead} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode} Y1={Y1}
{% endif %}
{% endif %}
{% endif %}
CACHE_TOOLHEAD_SETTINGS KEY="start_print_after_heating_extruder"
SET_MACRO_TRAVEL_SETTINGS
{% if (X0 > -1 and Y1 > -1) or (first_x > 0 and first_y > 0) %}
{% if printer["dual_carriage"] is defined %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set max_accel = printer.toolhead.max_accel|float %}
{% set square_corner_velocity = printer.toolhead.square_corner_velocity|float %}
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0 SQUARE_CORNER_VELOCITY=20
{% endif %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
G0 Z3 F{z_speed}
{% endif %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro RatOS"].nozzle_priming|lower == 'false' %}
{% set first_z = 1 %}
{% else %}
{% set first_z = 3 %}
{% endif %}
{% if idex_mode == "mirror" %}
{% if first_y >= 0 %}
G0 Y{first_y} F{speed}
{% else %}
G0 Y{Y1} F{speed}
{% endif %}
{% endif %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% if printer["dual_carriage"] is defined and printer["gcode_macro RatOS"].nozzle_priming|lower == 'false' %}
_MOVE_TO_LOADING_POSITION TOOLHEAD={initial_toolhead}
_PURGE_FILAMENT TOOLHEAD={initial_toolhead} E={printer["gcode_macro RatOS"].toolchange_first_purge|default(50)|float}
_CLEANING_MOVE TOOLHEAD={initial_toolhead}
{% endif %}
{% if first_x >= 0 and first_y >= 0 %}
G0 X{first_x} Y{first_y} Z{first_z} F{speed}
{% else %}
{% set first_x = X0 %}
{% set first_y = Y0 %}
{% if printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeblob' or printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeline' %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_x|lower == 'min' %}
{% set first_x = X0 %}
{% elif printer["gcode_macro RatOS"].nozzle_prime_start_x|lower == 'max' %}
{% set first_x = X1 %}
{% else %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_x|float <= center_x %}
{% set first_x = X0 %}
{% else %}
{% set first_x = X1 %}
{% endif %}
{% endif %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == 'min' %}
{% set first_y = Y0 %}
{% elif printer["gcode_macro RatOS"].nozzle_prime_start_y|lower == 'max' %}
{% set first_y = Y1 %}
{% else %}
{% if printer["gcode_macro RatOS"].nozzle_prime_start_y|float <= center_y %}
{% set first_y = Y0 %}
{% else %}
{% set first_y = Y1 %}
{% endif %}
{% endif %}
{% endif %}
G0 X{first_x} Y{first_y} Z{first_z} F{speed}
{% endif %}
{% endif %}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="start_print_after_heating_extruder"
_LOAD_RATOS_SKEW_PROFILE
[gcode_macro _PRIME]
gcode =
{% if printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeblob' or printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeline' %}
PRIME_BLOB INITIAL_TOOLHEAD={params.INITIAL_TOOLHEAD} BOTH_TOOLHEADS={params.BOTH_TOOLHEADS} IDEX_MODE={params.IDEX_MODE} Y1={params.Y1}
{% else %}
{% if printer["dual_carriage"] is defined %}
{% if params.IDEX_MODE == "copy" %}
_IDEX_COPY DANCE=0
{% elif params.IDEX_MODE == "mirror" %}
_IDEX_MIRROR DANCE=0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro END_PRINT]
description = End print procedure, use this in your Slicer.
gcode =
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
SAVE_GCODE_STATE NAME=end_print_state
{% if printer["dual_carriage"] is defined %}
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE=False
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% if printer["gcode_macro RatOS"].auto_center_subject|default(false)|lower == 'true' %}
{% set object_xoffset = printer["gcode_macro START_PRINT"].object_xoffset|default(0)|float %}
RATOS_ECHO MSG="Adjusting object x-offset by {(0-object_xoffset)} mm"
SET_GCODE_OFFSET X_ADJUST={(0-object_xoffset)}
{% endif %}
{% endif %}
_USER_END_PRINT_BEFORE_HEATERS_OFF { rawparams }
_END_PRINT_BEFORE_HEATERS_OFF
TURN_OFF_HEATERS
_USER_END_PRINT_AFTER_HEATERS_OFF { rawparams }
_END_PRINT_AFTER_HEATERS_OFF
_USER_END_PRINT_PARK { rawparams }
_END_PRINT_PARK
{% if printer["gcode_macro RatOS"].skew_profile is defined %}
SET_SKEW CLEAR=1
{% endif %}
{% if printer["dual_carriage"] is not defined and printer["gcode_macro RatOS"].end_print_motors_off|lower != 'false' %}
M84
{% endif %}
M107
BED_MESH_CLEAR
RATOS_ECHO MSG="Done :)"
RESTORE_GCODE_STATE NAME=end_print_state
{% if printer["dual_carriage"] is defined %}
M84
{% endif %}
{% if printer.configfile.settings.beacon is defined %}
{% if printer["dual_carriage"] is not defined %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% if beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
SET_GCODE_OFFSET Z=0 MOVE=0
{% endif %}
{% endif %}
_BEACON_SET_NOZZLE_TEMP_OFFSET RESET=True
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="start_print"
_CHAMBER_FILTER_ON AT="print_end"
_CHAMBER_FILTER_OFF
_CHAMBER_HEATER_OFF
_USER_END_PRINT_FINISHED { rawparams }
[gcode_macro _END_PRINT_BEFORE_HEATERS_OFF]
gcode =
RATOS_ECHO MSG="Cleaning up..."
[gcode_macro _END_PRINT_AFTER_HEATERS_OFF]
gcode =
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set current_z = printer.toolhead.position.z|float %}
{% set z_hop = printer["gcode_macro RatOS"].end_print_park_z_hop|float %}
{% set r = printer["gcode_macro RatOS"].end_print_retract_filament|default(4)|float %}
{% if current_z < (max_z - z_hop) %}
{% set z_safe = z_hop %}
{% else %}
{% set z_safe = max_z - current_z %}
{% endif %}
G91
G1 E-2 F3600
G0 Z{z_safe} F3600
G1 E-{(r-2)} F3600
G90
[gcode_macro _SET_EXTRUSION_MODE]
gcode =
{% if printer["gcode_macro RatOS"].relative_extrusion|lower == 'true' %}
M83
{% else %}
M82
{% endif %}
[gcode_macro GENERATE_SHAPER_GRAPHS]
description = Genarates input shaper resonances graphs for analysis. Uses the AXIS, TOOLHEAD, FREQUNECY_START and FREQUENCY_END parameter if you want to do specific measurements, (eg. GENERATE_SHAPER_GRAPHS AXIS=X TOOLHEAD=0 FREQUENCY_START=10 FREQUENCY_END=20)
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="generate_shaper_graphs"
SET_MACRO_TRAVEL_SETTINGS
CACHE_IS_GRAPH_FILES
{% set measure_t0 = true %}
{% set measure_t1 = true %}
{% if params.TOOLHEAD is defined %}
{% if params.TOOLHEAD|lower == '0' %}
{% set measure_t1 = false %}
{% elif params.TOOLHEAD|lower == '1' %}
{% set measure_t0 = false %}
{% else %}
{action_raise_error("Unknown toolhead specified. Expected 0 or 1 (left or right)")}
{% endif %}
{% endif %}
{% set axis = params.AXIS|default('')|lower %}
{% set freq_start = params.FREQUENCY_START|default(10)|int %}
{% set freq_end = params.FREQUENCY_END|default(133)|int %}
{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set adxl_chip = printer["gcode_macro RatOS"].adxl_chip %}
{% set probe_points = printer.configfile.settings.resonance_tester.probe_points[0] %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set copy_mode_offset = printable_x_max / 4.0 %}
{% set default_toolhead_parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
MAYBE_HOME
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% else %}
_IDEX_SINGLE
{% endif %}
G90
_LED_INPUT_SHAPER_START
{% if axis != '' %}
{% if axis == 'x' %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% endif %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if idex_mode == 'copy' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% elif idex_mode == 'mirror' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
{% else %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t0 == true and measure_t1 == false %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == false and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == true and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
PARK_TOOLHEAD
{% elif axis == 'y' %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% endif %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if idex_mode == 'copy' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% elif idex_mode == 'mirror' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
{% else %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t0 == true and measure_t1 == false %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == false and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == true and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
PARK_TOOLHEAD
{% else %}
{action_raise_error("Unknown axis specified. Expected X or Y.")}
{% endif %}
{% else %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' %}
{% if idex_mode == 'copy' %}
_IDEX_COPY DANCE=0
{% elif idex_mode == 'mirror' %}
_IDEX_MIRROR DANCE=0
{% endif %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if idex_mode == 'copy' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_copy FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 1 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% elif idex_mode == 'mirror' %}
{% if measure_t0 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1_mirror FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0] - copy_mode_offset},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% if measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 2 %s %s %s" % ('%0.3f'|format(probe_points[0] - copy_mode_offset), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
{% else %}
G1 X{probe_points[0]} Y{probe_points[1]} F{speed}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[0]}" NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]}" NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} HZ_PER_SEC={hz_per_sec} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t0 == true and measure_t1 == false %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 0 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == false and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 1 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% elif measure_t0 == true and measure_t1 == true %}
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"x 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
RUN_SHELL_COMMAND CMD=generate_shaper_graphs PARAMS="{"y 2 0 %s %s %s" % ('%0.3f'|format(probe_points[0]), '%0.3f'|format(probe_points[1]), '%0.3f'|format(probe_points[2]))}"
{% endif %}
{% endif %}
PARK_TOOLHEAD
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="generate_shaper_graphs"
{% if idex_mode != 'copy' and idex_mode != 'mirror' %}
_IDEX_SINGLE X={default_toolhead_parking_position} INIT=1
{% endif %}
_LED_INPUT_SHAPER_END
_LEARN_MORE_CALIBRATION
SHOW_IS_GRAPH_FILES TITLE="Shaper graph"
[gcode_shell_command generate_shaper_graph_x]
command = /home/pi/printer_data/config/RatOS/scripts/generate-shaper-graph-x.sh
timeout = 60.
verbose = True
[gcode_shell_command generate_shaper_graph_y]
command = /home/pi/printer_data/config/RatOS/scripts/generate-shaper-graph-y.sh
timeout = 60.
verbose = True
[gcode_macro MEASURE_COREXY_BELT_TENSION]
description = Generates resonance graph used to ensure belts are equally tensioned. Uses the AXIS, TOOLHEAD, FREQUNECY_START and FREQUENCY_END parameter if you want to do specific measurements, (eg. GENERATE_SHAPER_GRAPHS AXIS=X TOOLHEAD=0 FREQUENCY_START=10 FREQUENCY_END=20)
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="measure_corexy_belt_tension"
SET_MACRO_TRAVEL_SETTINGS
CACHE_IS_GRAPH_FILES
{% set measure_t0 = true %}
{% set measure_t1 = true %}
{% if params.TOOLHEAD is defined %}
{% if params.TOOLHEAD|lower == '0' %}
{% set measure_t1 = false %}
{% elif params.TOOLHEAD|lower == '1' %}
{% set measure_t0 = false %}
{% else %}
{action_raise_error("Unknown toolhead specified. Expected 0 or 1 (left or right)")}
{% endif %}
{% endif %}
{% set axis = params.AXIS|default('')|lower %}
{% set freq_start = params.FREQUENCY_START|default(10)|int %}
{% set freq_end = params.FREQUENCY_END|default(133)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set adxl_chip = printer["gcode_macro RatOS"].adxl_chip %}
{% set probe_points = printer.configfile.settings.resonance_tester.probe_points[0] %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set default_toolhead_parking_position = printer["gcode_macro T%s" % default_toolhead].parking_position|float %}
MAYBE_HOME
_IDEX_SINGLE
G90
_LED_INPUT_SHAPER_START
{% if axis != '' %}
{% if axis == 'x' %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" OUTPUT=raw_data NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" OUTPUT=raw_data NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
G4 P5000
{% if measure_t1 == true and measure_t0 == false %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 1"
{% elif measure_t1 == false and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 0"
{% elif measure_t1 == true and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS=x
{% endif %}
PARK_TOOLHEAD
{% elif axis == 'y' %}
{% if measure_t1 == false or measure_t0 == false %}
{action_raise_error("Axis specified. Not supported for belt tension on Y.")}
{% else %}
_SELECT_TOOL T=1 X={parking_position_t1} Y={probe_points[1]}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]},{adxl_chip[0]}" OUTPUT=raw_data NAME=t2 POINT={parking_position_t1},{probe_points[1]},{probe_points[2]} FREQ_START={freq_start} FREQ_END={freq_end}
G4 P5000
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="y 2"
PARK_TOOLHEAD
{% endif %}
{% else %}
{action_raise_error("Unknown axis specified. Expected X or Y.")}
{% endif %}
{% else %}
{% if measure_t1 == true %}
_SELECT_TOOL T=1 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[1]}" OUTPUT=raw_data NAME=t1 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if measure_t0 == true %}
_SELECT_TOOL T=0 X={probe_points[0]} Y={probe_points[1]}
TEST_RESONANCES AXIS=X CHIPS="{adxl_chip[0]}" OUTPUT=raw_data NAME=t0 FREQ_START={freq_start} FREQ_END={freq_end} POINT={probe_points[0]},{probe_points[1]},{probe_points[2]}
{% endif %}
{% if params.TOOLHEAD is not defined %}
_SELECT_TOOL T=1 X={parking_position_t1} Y={probe_points[1]}
G1 X{parking_position_t1} F{speed}
TEST_RESONANCES AXIS=Y CHIPS="{adxl_chip[1]},{adxl_chip[0]}" OUTPUT=raw_data NAME=t2 POINT={parking_position_t1},{probe_points[1]},{probe_points[2]} FREQ_START={freq_start} FREQ_END={freq_end}
{% endif %}
G4 P5000
{% if measure_t1 == true and measure_t0 == false %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 1"
{% elif measure_t1 == false and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="x 0"
{% elif measure_t1 == true and measure_t0 == true %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS=x
{% endif %}
{% if params.TOOLHEAD is not defined %}
RUN_SHELL_COMMAND CMD=generate_tension_graphs PARAMS="y 2"
{% endif %}
PARK_TOOLHEAD
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="measure_corexy_belt_tension"
_IDEX_SINGLE X={default_toolhead_parking_position} INIT=1
_LED_INPUT_SHAPER_END
_LEARN_MORE_CALIBRATION
SHOW_IS_GRAPH_FILES TITLE="Belt Tension Graph"
[gcode_shell_command generate_belt_tension_graph]
command = /home/pi/printer_data/config/RatOS/scripts/generate-belt-tension-graph.sh
timeout = 90.
verbose = True
[idle_timeout]
gcode =
{% if printer.webhooks.state|lower == 'ready' %}
{% if printer.pause_resume.is_paused|lower == 'false' %}
RATOS_ECHO PREFIX="IDLE" MSG="2 hours since last activity. Powering off heaters and motors.."
TURN_OFF_HEATERS
M84
{% endif %}
{% endif %}
timeout = 7200
[temperature_sensor raspberry_pi]
sensor_type = temperature_host
[skew_correction]
[input_shaper]
[virtual_sdcard]
path = ~/printer_data/gcodes
[display_status]
[pause_resume]
[force_move]
enable_force_move = True
[respond]
[resonance_generator]
[ratos]
allow_unknown_gcode_generator = True
enable_gcode_transform = True
[exclude_object]
[heater_bed]
heater_pin = heater_bed_heating_pin
sensor_pin = heater_bed_sensor_pin
sensor_type = Generic 3950
min_temp = 0
max_temp = 140
pwm_cycle_time = 0.02
control = pid
pid_kp = 67.827
pid_ki = 2.380
pid_kd = 483.268
[fan]
pin = rpi:gpio4
shutdown_speed = 1.0
[heater_fan toolhead_cooling_fan]
pin = toolboard_t0:PA1
fan_speed = 1
heater = extruder
[printer]
kinematics = ratos_hybrid_corexy
max_velocity = 800
max_accel = 10000
minimum_cruise_ratio = 0.5
max_z_velocity = 50
max_z_accel = 600
square_corner_velocity = 5
[ratos_hybrid_corexy]
inverted = true
[dual_carriage]
axis = x
safe_distance = 55
position_max = 559.8
position_endstop = 559.8
position_min = 0
step_pin = PF9
dir_pin = dual_carriage_dir_pin
enable_pin = !PG2
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
homing_speed = 50
endstop_pin = toolboard_t1:PB6
[gcode_macro IDEX_SINGLE]
gcode =
_IDEX_REMAP_TOOLHEADS ENABLE=False
_IDEX_SINGLE
[gcode_macro _IDEX_SINGLE]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_single"
SET_MACRO_TRAVEL_SETTINGS
{% set init = params.INIT|default(0)|int %}
{% set new_x = params.X|default(-1)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_x = printable_x_max / 2 %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set parking_position_act_t = printer["gcode_macro T%s" % (0 if act_t==1 else 1)].parking_position|float %}
{% set parking_position_default_t = printer["gcode_macro T%s" % (0 if default_toolhead==1 else 1)].parking_position|float %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="init: {init}, new_x: {new_x}, idex_mode: {idex_mode}, printable_x_max: {printable_x_max}, center_x: {center_x}, act_t: {act_t}"
{% if idex_mode == "copy" or idex_mode == "mirror" or init == 1 %}
{% if 'x' in printer.toolhead.homed_axes %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="reset gcode offset"
G1 X{center_x} F{(speed)}
SET_GCODE_OFFSET X_ADJUST={center_x / 2} MOVE=0
{% endif %}
{% endif %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="activate default carriage"
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead} MODE=PRIMARY
{% if 'x' in printer.toolhead.homed_axes %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set toolheads"
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
G90
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="move secondary toolhead to parking position."
SET_DUAL_CARRIAGE CARRIAGE={0 if default_toolhead==1 else 1}
G1 X{parking_position_default_t} F{speed}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="move default toolhead to its new position."
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead}
{% if new_x == -1 %}
{% set new_x = center_x %}
{% endif %}
G1 X{new_x} F{speed}
M400
{% else %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="X Axis not homed."
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead}
{% endif %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set extruder motion queue."
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if default_toolhead==0 else default_toolhead}
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set toolhead offset."
_SET_TOOLHEAD_OFFSET T={default_toolhead}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="set input shaper."
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[default_toolhead]|float)} SHAPER_FREQ_Y={(shaper_y_freq[default_toolhead]|float)} SHAPER_TYPE_X={(shaper_x_type[default_toolhead]|lower)} SHAPER_TYPE_Y={(shaper_y_type[default_toolhead]|lower)}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="update Frontend."
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE={True if default_toolhead==0 else False}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE={True if default_toolhead==1 else False}
{% else %}
{% if "xyz" in printer.toolhead.homed_axes %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="move secondary toolhead to parking position"
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={0 if act_t==1 else 1}
G1 X{parking_position_act_t} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={act_t}
{% else %}
DEBUG_ECHO PREFIX="IDEX_SINGLE" MSG="Axis not homed."
SET_DUAL_CARRIAGE CARRIAGE={default_toolhead}
{% endif %}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_single"
[gcode_macro IDEX_COPY]
gcode =
_IDEX_COPY
[gcode_macro _IDEX_COPY]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_copy"
SET_MACRO_TRAVEL_SETTINGS
{% set y = params.Y|default(-1)|int %}
{% set dance = params.DANCE|default(1)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
DEBUG_ECHO PREFIX="IDEX_COPY" MSG="idex_mode: {idex_mode}, printable_x_max: {printable_x_max}, center_x: {center_x}, dance: {dance}, y: {y}"
{% if "xyz" in printer.toolhead.homed_axes %}
{% if idex_mode != "copy" %}
{% if idex_mode == "mirror" %}
{% if y>=0 %}
G1 X{center_x} Y{y} F{(speed)}
{% else %}
G1 X{center_x} F{(speed)}
{% endif %}
{% endif %}
{% if idex_mode == "primary" or idex_mode == "inactive" %}
_IDEX_SET_TOOLHEADS
{% endif %}
ACTIVATE_EXTRUDER EXTRUDER='extruder'
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
{% if idex_mode != "mirror" %}
SET_PRESSURE_ADVANCE
{% endif %}
{% if idex_mode != "mirror" %}
SET_GCODE_OFFSET X_ADJUST=-{center_x / 2} MOVE=0
{% else %}
_SET_TOOLHEAD_OFFSET T={default_toolhead}
{% endif %}
{% if dance == 1 %}
G1 X{center_x} F{(speed)}
G1 X{center_x - 30} F{(speed)}
G1 X{center_x + 30} F{(speed)}
G1 X{center_x} F{(speed)}
{% endif %}
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[2]|float)} SHAPER_FREQ_Y={(shaper_y_freq[2]|float)} SHAPER_TYPE_X={(shaper_x_type[2]|lower)} SHAPER_TYPE_Y={(shaper_y_type[2]|lower)}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE=True
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE=True
{% endif %}
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_copy"
[gcode_macro IDEX_MIRROR]
gcode =
_IDEX_MIRROR
[gcode_macro _IDEX_MIRROR]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_mirror"
SET_MACRO_TRAVEL_SETTINGS
{% set dance = params.DANCE|default(1)|int %}
{% set priming = params.PRIMING|default(0)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
DEBUG_ECHO PREFIX="IDEX_MIRROR" MSG="idex_mode: {idex_mode}, printable_x_max: {printable_x_max}, center_x: {center_x}, dance: {dance}"
{% if "xyz" in printer.toolhead.homed_axes %}
{% if idex_mode != "mirror" %}
{% if idex_mode == "copy" %}
G1 X{center_x} F{(speed)}
{% endif %}
{% if idex_mode == "primary" or idex_mode == "inactive" %}
_IDEX_SET_TOOLHEADS MIRROR_PRIMING={params.PRIMING}
{% endif %}
ACTIVATE_EXTRUDER EXTRUDER='extruder'
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR
{% if idex_mode != "copy" %}
SET_PRESSURE_ADVANCE
{% endif %}
{% if idex_mode != "copy" %}
SET_GCODE_OFFSET X_ADJUST=-{center_x / 2} MOVE=0
{% else %}
_SET_TOOLHEAD_OFFSET T={default_toolhead}
{% endif %}
{% if dance and not priming %}
G1 X{center_x} F{(speed)}
G1 X{center_x - 30} F{(speed)}
G1 X{center_x + 30} F{(speed)}
G1 X{center_x} F{(speed)}
{% endif %}
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[3]|float)} SHAPER_FREQ_Y={(shaper_y_freq[3]|float)} SHAPER_TYPE_X={(shaper_x_type[3]|lower)} SHAPER_TYPE_Y={(shaper_y_type[3]|lower)}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE=True
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE=True
{% endif %}
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_mirror"
[gcode_macro _IDEX_SET_TOOLHEADS]
gcode =
CACHE_TOOLHEAD_SETTINGS KEY="idex_set_toolheads"
SET_MACRO_TRAVEL_SETTINGS
{% set mirror_priming = params.MIRROR_PRIMING|default(0)|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set parking_position_inactive_t = printer["gcode_macro T%s" % (0 if act_t==1 else 1)].parking_position|float %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_x = printable_x_max / 2 %}
DEBUG_ECHO PREFIX="_IDEX_SET_TOOLHEADS" MSG="idex_mode: {idex_mode}, act_t: {act_t}, center_x: {center_x}, mirror_priming: {mirror_priming}"
{% if act_t != default_toolhead %}
_SET_TOOLHEAD_OFFSET T={default_toolhead} MOVE=1
{% endif %}
{% if mirror_priming %}
{% if parking_position_t0|abs < parking_position_t1 - printable_x_max %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{printable_x_max + parking_position_t0|abs} F{(speed)}
{% else %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{0 - (parking_position_t1 - printable_x_max)} F{(speed)}
{% endif %}
{% else %}
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={0 if act_t==1 else 1} MODE=PRIMARY
G1 X{parking_position_inactive_t} F{(speed)}
{% if act_t==1 %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{center_x / 2 + center_x} F{(speed)}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{center_x / 2} F{(speed)}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{center_x / 2 + center_x} F{(speed)}
{% endif %}
RESTORE_TOOLHEAD_SETTINGS KEY="idex_set_toolheads"
[gcode_macro IDEX_PARK]
gcode =
PARK_TOOLHEAD
[gcode_macro PARK_TOOLHEAD]
gcode =
{% set idex_mode = 'none' %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% endif %}
{% set act_t = 1 if idex_mode=='primary' else 0 %}
DEBUG_ECHO PREFIX="PARK_TOOLHEAD" MSG="Parking T{act_t}.."
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set parking_position_act_t = printer["gcode_macro T%s" % act_t].parking_position|float %}
{% set parking_position_inact_t = printer["gcode_macro T%s" % (0 if act_t==1 else 1)].parking_position|float %}
{% set printable_y_min = printer["gcode_macro RatOS"].printable_y_min|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% if idex_mode != "copy" and idex_mode != "mirror" and 'xy' in printer.toolhead.homed_axes %}
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% elif printer.toolhead.position.y|float < printable_y_min %}
G1 Y{printable_y_min} F{speed}
{% endif %}
SAVE_GCODE_STATE NAME=_PARK_TOOLHEAD
G90
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0.5
G1 X{parking_position_act_t} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={0 if act_t==1 else 1}
G1 X{parking_position_inact_t} F{speed}
SET_DUAL_CARRIAGE CARRIAGE={act_t}
SET_VELOCITY_LIMIT ACCEL={printer.toolhead.max_accel} MINIMUM_CRUISE_RATIO=0.5
M400
RESTORE_GCODE_STATE NAME=_PARK_TOOLHEAD
{% endif %}
[gcode_macro JOIN_SPOOLS]
gcode =
{% set spools = params.SPOOLS|default("") %}
{% if spools == "" %}
_IDEX_JOIN_SPOOLS ENABLE=false
{% else %}
{% if spools != "0,1" and spools != "1,0" %}
RATOS_ECHO MSG="Wrong spool configuration!"
RATOS_ECHO MSG="Join Spools = JOIN_SPOOLS SPOOLS=0,1"
RATOS_ECHO MSG="Deactivate = JOIN_SPOOLS SPOOLS="
{% else %}
{% if spools == "0,1" or spools == "1,0" %}
_IDEX_JOIN_SPOOLS ENABLE=true
{% else %}
_IDEX_JOIN_SPOOLS ENABLE=false
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _IDEX_JOIN_SPOOLS]
variable_enabled = False
gcode =
{% set enable = true if params.ENABLE|default(false)|lower == 'true' else false %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=False
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% if enable %}
{% set has_t0_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined else false %}
{% set has_t1_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined else false %}
{% set has_t0_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t0"] is defined else false %}
{% set has_t1_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t1"] is defined else false %}
{% if (has_t0_toolhead_filament_sensor and has_t1_toolhead_filament_sensor) or (has_t0_bowden_filament_sensor and has_t1_bowden_filament_sensor) %}
SET_GCODE_VARIABLE MACRO=_IDEX_JOIN_SPOOLS VARIABLE=enabled VALUE=True
RATOS_ECHO MSG="Spool joining enabled for the next print!"
{% else %}
RATOS_ECHO MSG="Can not enable spool joining! No filament sensors found."
{% endif %}
{% else %}
RATOS_ECHO MSG="Spool joining deactivated!"
{% endif %}
{% else %}
RATOS_ECHO MSG="Spool joining is not possible in copy and mirror mode!"
{% endif %}
[gcode_macro _JOIN_SPOOL]
gcode =
{% set old_toolhead = params.TOOLHEAD|int %}
{% set new_toolhead = 0 if old_toolhead == 1 else 1 %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed|float * 60 %}
{% set purge_after_load = printer["gcode_macro T%s" % new_toolhead].purge_after_load|float %}
DEBUG_ECHO PREFIX="_JOIN_SPOOL" MSG="toolhead: {new_toolhead}"
{% set has_filament = true %}
{% set has_new_toolhead_filament_sensor = true if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % new_toolhead] is defined else false %}
{% set has_new_bowden_filament_sensor = true if printer["filament_switch_sensor bowden_filament_sensor_t%s" % new_toolhead] is defined else false %}
{% if has_new_toolhead_filament_sensor %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % new_toolhead].enabled|lower == "true" %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t%s" % new_toolhead].filament_detected|lower != "true" %}
{% set has_filament = false %}
{% endif %}
{% else %}
{% set has_filament = false %}
{% endif %}
{% endif %}
{% if has_new_bowden_filament_sensor %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % new_toolhead].enabled|lower == "true" %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t%s" % new_toolhead].filament_detected|lower != "true" %}
{% set has_filament = false %}
{% endif %}
{% else %}
{% set has_filament = false %}
{% endif %}
{% endif %}
{% if has_filament %}
RATOS_ECHO MSG="Joining spools! Please wait for extruder to heat up...."
SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=idex_toolhead VALUE={new_toolhead}
_DEACTIVATE_TOOLHEAD TOOLHEAD={old_toolhead}
{% set extruder_first_layer_temp = (printer["gcode_macro START_PRINT"].extruder_first_layer_temp|default("")).split(",") %}
{% set extruder_other_layer_temp = (printer["gcode_macro START_PRINT"].extruder_other_layer_temp|default("")).split(",") %}
{% if printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|int < 2 %}
{% set extruder_temp = extruder_first_layer_temp[new_toolhead]|float %}
{% else %}
{% set extruder_temp = extruder_other_layer_temp[new_toolhead]|float %}
{% endif %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if new_toolhead == 0 else 'extruder1'} TARGET={extruder_temp}
TEMPERATURE_WAIT SENSOR={'extruder' if new_toolhead == 0 else 'extruder1'} MINIMUM={extruder_temp} MAXIMUM={extruder_temp + 5}
{% if purge_after_load > 0 %}
SET_DUAL_CARRIAGE CARRIAGE={new_toolhead} MODE=PRIMARY
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_toolhead == 0 else new_toolhead}
_MOVE_TO_LOADING_POSITION TOOLHEAD={new_toolhead}
_PURGE_FILAMENT TOOLHEAD={new_toolhead} E={purge_after_load}
_CLEANING_MOVE TOOLHEAD={new_toolhead}
SET_DUAL_CARRIAGE CARRIAGE={old_toolhead} MODE=PRIMARY
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if old_toolhead == 0 else old_toolhead}
{% endif %}
RESUME TOOLHEAD={new_toolhead}
_IDEX_JOIN_SPOOLS ENABLE=false
{% else %}
{ action_raise_error("Spool join failed! No filament found or filament sensor is disabled.") }
{% endif %}
[gcode_macro REMAP_TOOLHEADS]
gcode =
{% set toolheads = params.TOOLHEADS|default("") %}
{% if toolheads == "" %}
_IDEX_REMAP_TOOLHEADS ENABLE=false
{% else %}
{% if toolheads != "0,1" and toolheads != "1,0" %}
RATOS_ECHO MSG="Wrong toolhead configuration!"
RATOS_ECHO MSG="Remap = REMAP_TOOLHEADS TOOLHEADS=0,1"
RATOS_ECHO MSG="Deactivate = REMAP_TOOLHEADS TOOLHEADS="
{% else %}
{% if toolheads == "0,1" or toolheads == "1,0" %}
_IDEX_REMAP_TOOLHEADS ENABLE=true
_IDEX_SINGLE
{% else %}
_IDEX_REMAP_TOOLHEADS ENABLE=false
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _IDEX_REMAP_TOOLHEADS]
variable_enabled = False
gcode =
{% set enable = true if params.ENABLE|default(false)|lower == 'true' else false %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if not enable or (idex_mode != "copy" and idex_mode != "mirror") %}
{% if enable %}
RATOS_ECHO MSG="Toolhead remapping enabled for the next print!"
{% else %}
RATOS_ECHO MSG="Toolhead remapping deactivated!"
{% endif %}
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE={enable}
{% else %}
RATOS_ECHO MSG="Toolhead remapping not possible in copy and mirror mode!"
SET_GCODE_VARIABLE MACRO=_IDEX_REMAP_TOOLHEADS VARIABLE=enabled VALUE=False
{% endif %}
[gcode_macro SHAPER_CALIBRATE]
rename_existing = SHAPER_CALIBRATE_ORG
gcode =
RATOS_ECHO PREFIX="IDEX" MSG="SHAPER_CALIBRATE is useless on IDEX machines. Please use the GENERATE_SHAPER_GRAPHS macro and type the values into `variable_shaper_*_freq` and `variable_shaper_*_type manually`."
[gcode_shell_command generate_shaper_graphs]
command = /home/pi/printer_data/config/RatOS/scripts/idex-generate-shaper-graph.sh
timeout = 120.
verbose = True
[gcode_shell_command generate_tension_graphs]
command = /home/pi/printer_data/config/RatOS/scripts/idex-generate-belt-tension-graph.sh
timeout = 120.
verbose = True
[gcode_macro SET_PRESSURE_ADVANCE]
variable_snyc_toolheads = False
rename_existing = SET_PRESSURE_ADVANCE_BASE
gcode =
{% if params.SYNC_TOOLHEADS is defined %}
{% set snyc_toolheads = true if params.SYNC_TOOLHEADS|default(false)|lower == 'true' else false %}
SET_GCODE_VARIABLE MACRO=SET_PRESSURE_ADVANCE VARIABLE=snyc_toolheads VALUE=True
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG="Syncing toolheads..."
{% else %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% if idex_mode == 'copy' or idex_mode == 'mirror' or snyc_toolheads %}
{% set advance = params.ADVANCE|default(printer['extruder'].pressure_advance|float)|float %}
{% set smooth_time = params.SMOOTH_TIME|default(printer['extruder'].smooth_time|float)|float %}
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG="T0"
SET_PRESSURE_ADVANCE_BASE EXTRUDER='extruder' ADVANCE={advance} SMOOTH_TIME={smooth_time}
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG="T1"
SET_PRESSURE_ADVANCE_BASE EXTRUDER='extruder1' ADVANCE={advance} SMOOTH_TIME={smooth_time}
{% else %}
{% set extruder = 'extruder' if act_t == 0 else 'extruder1' %}
{% if params.EXTRUDER is defined %}
{% set extruder = params.EXTRUDER %}
{% endif %}
{% if extruder == 'extruder' or extruder == 'extruder1' %}
{% set advance = params.ADVANCE|default(printer['%s' % extruder].pressure_advance|float)|float %}
{% set smooth_time = params.SMOOTH_TIME|default(printer['%s' % extruder].smooth_time|float)|float %}
SET_PRESSURE_ADVANCE_BASE EXTRUDER={extruder} ADVANCE={advance} SMOOTH_TIME={smooth_time}
{% if params.EXTRUDER is not defined %}
RATOS_ECHO PREFIX="SET_PRESSURE_ADVANCE" MSG={"T%s" % act_t}
{% endif %}
{% else %}
SET_PRESSURE_ADVANCE_BASE { rawparams }
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M106]
rename_existing = M106.1
variable_swap_speed = -1
gcode =
{% set s = [[params.S|default(255)|int, 255]|min, 0]|max %}
{% set p = params.P|default(-1)|int %}
{% set speed = s / 255 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|default('')|lower %}
{% set t = 1 if idex_mode=='primary' else 0 %}
{% set sync_fans = true if printer["gcode_macro RatOS"].toolchange_sync_fans|default(0)|int == 1 else false %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
{% set sync_fans = true %}
{% endif %}
{% if sync_fans and idex_mode != "copy" and idex_mode != "mirror" %}
{% set total_toolshifts = printer["gcode_macro START_PRINT"].total_toolshifts|int %}
{% set toolshift_count = printer["gcode_macro _TOOLCHANGE"].toolshift_count|int %}
{% if toolshift_count > total_toolshifts %}
{% set sync_fans = false %}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=M106 VARIABLE=swap_speed VALUE=-1
{% if p == -1 %}
{% if speed == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={speed}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={speed}
{% else %}
SET_GCODE_VARIABLE MACRO=M106 VARIABLE=swap_speed VALUE={speed}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={(speed if (t == 0 or sync_fans) else 0)}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={(speed if (t == 1 or sync_fans) else 0)}
{% endif %}
{% else %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={speed if t == p else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={speed if t == p else 0}
{% endif %}
M106.1 S{s}
[gcode_macro M107]
rename_existing = M107.1
gcode =
{% set p = params.P|default(-1)|int %}
M106 S0 P{p}
[gcode_macro _SELECT_TOOL]
variable_last_timestamp = 0
gcode =
{% if params.T is defined %}
{% set idex_mode = '' %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if "xyz" not in printer.toolhead.homed_axes and (idex_mode == "copy" or idex_mode == "mirror") %}
_IDEX_SINGLE
{% set idex_mode = 'reset' %}
{% endif %}
{% if idex_mode != "copy" and idex_mode != "mirror" %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set new_t = params.T|int %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% set swap_toolheads = true if printer["gcode_macro _IDEX_REMAP_TOOLHEADS"].enabled|default(false)|lower == 'true' else false %}
{% if swap_toolheads and is_printing_gcode %}
{% set new_t = 0 if new_t == 1 else 1 %}
{% endif %}
{% set toolchange_prepurging_timer = printer["gcode_macro RatOS"].toolchange_prepurging_timer|default(0)|int %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
DEBUG_ECHO PREFIX="_SELECT_TOOL" MSG="act_t: {act_t}, new_t: {new_t}, is_printing_gcode: {is_printing_gcode}, swap_toolheads: {swap_toolheads}, toolchange_standby_temp: {toolchange_standby_temp}"
{% set act_extruder = 'extruder%s' % ('' if new_t == 0 else new_t) %}
{% if new_t != act_t or printer.toolhead.extruder != act_extruder or idex_mode == 'reset' %}
RATOS_ECHO PREFIX="IDEX" MSG="Selecting T{new_t}.."
M220 S100
{% set new_x = params.X|default(-1)|float %}
{% set new_y = params.Y|default(-1)|float %}
{% set new_z = params.Z|default(-1)|float %}
{% set toolshift = true if params.TOOLSHIFT|default(1)|int == 1 else false %}
{% set park_t0 = params.PARK_T0|default(-1)|float %}
{% set park_t1 = params.PARK_T1|default(-1)|float %}
{% if "xyz" not in printer.toolhead.homed_axes %}
{% set toolshift = false %}
{% endif %}
{% set fan_speed = printer["fan_generic part_fan_t%s" % act_t].speed %}
{% set deactivate_toolhead = false %}
{% if is_printing_gcode %}
{% set total_toolshifts = printer["gcode_macro START_PRINT"].total_toolshifts|int %}
{% set toolshift_count = printer["gcode_macro _TOOLCHANGE"].toolshift_count|int + 1 %}
SET_GCODE_VARIABLE MACRO=_TOOLCHANGE VARIABLE=toolshift_count VALUE={toolshift_count}
{% if toolshift_count == total_toolshifts %}
{% set deactivate_toolhead = true %}
{% endif %}
{% endif %}
{% set needs_wakeup = true if printer["gcode_macro T%s" % new_t].standby|default(false)|lower == 'true' else false %}
{% set needs_purging = false %}
{% set wake_up_purge = printer["gcode_macro RatOS"].toolchange_purge|default(0)|float %}
{% if is_printing_gcode and toolchange_prepurging_timer > 0 and wake_up_purge > 0 %}
{% set new_timestamp = printer["print_stats"].print_duration %}
{% set elapsed_time = new_timestamp - last_timestamp %}
SET_GCODE_VARIABLE MACRO=_SELECT_TOOL VARIABLE=last_timestamp VALUE={new_timestamp}
{% if elapsed_time > toolchange_prepurging_timer %}
{% set needs_purging = true %}
{% endif %}
{% endif %}
{% set first_use_purge = printer["gcode_macro RatOS"].toolchange_first_purge %}
{% if toolshift_count == 1 and first_use_purge > 0 %}
{% set needs_purging = true %}
{% endif %}
{% if is_printing_gcode and (toolchange_standby_temp > -1 or needs_purging or needs_wakeup) %}
_TOOLHEAD_STANDBY TOOLHEAD={act_t}
{% if deactivate_toolhead %}
_DEACTIVATE_TOOLHEAD TOOLHEAD={act_t}
{% endif %}
_TOOLHEAD_WAKEUP TOOLHEAD={new_t} X={new_x} Y={new_y} Z={new_z} FAN_SPEED={fan_speed} TOOLSHIFT_COUNT={toolshift_count}
{% else %}
{% set sync_fans = true if printer["gcode_macro RatOS"].toolchange_sync_fans|default(false)|lower == 'true' else false %}
{% if fan_speed > 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed if (new_t == 0 or sync_fans) else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed if (new_t == 1 or sync_fans) else 0}
M106.1 S{fan_speed}
{% endif %}
_TOOLCHANGE T={new_t} X={new_x} Y={new_y} Z={new_z} PARK_T0={park_t0} PARK_T1={park_t1} TOOLSHIFT={toolshift}
{% if deactivate_toolhead %}
_DEACTIVATE_TOOLHEAD TOOLHEAD={act_t}
{% endif %}
{% endif %}
{% set shaper_x_freq = printer["gcode_macro RatOS"].shaper_x_freq %}
{% set shaper_y_freq = printer["gcode_macro RatOS"].shaper_y_freq %}
{% set shaper_x_type = printer["gcode_macro RatOS"].shaper_x_type %}
{% set shaper_y_type = printer["gcode_macro RatOS"].shaper_y_type %}
SET_INPUT_SHAPER SHAPER_FREQ_X={(shaper_x_freq[new_t]|float)} SHAPER_FREQ_Y={(shaper_y_freq[new_t]|float)} SHAPER_TYPE_X={(shaper_x_type[new_t]|lower)} SHAPER_TYPE_Y={(shaper_y_type[new_t]|lower)}
SET_GCODE_VARIABLE MACRO=T0 VARIABLE=active VALUE={True if new_t == 0 else False}
SET_GCODE_VARIABLE MACRO=T1 VARIABLE=active VALUE={True if new_t == 1 else False}
{% if 'x' in printer.toolhead.homed_axes %}
{% set sanity_check_idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if new_t == 0 %}
{% if printer.toolhead.extruder == 'extruder' %}
{% if sanity_check_idex_mode == 'primary' %}
{ action_emergency_stop("Switched states detected in idex_mode.py. Please restart the host controller.") }
{% endif %}
{% endif %}
{% elif new_t == 1 %}
{% if printer.toolhead.extruder == 'extruder1' %}
{% if sanity_check_idex_mode == 'inactive' %}
{ action_emergency_stop("Switched states detected in idex_mode.py. Please restart the host controller.") }
{% endif %}
{% endif %}
{% endif %}
{% endif %}
G90
G92 E0
{% endif %}
{% endif %}
{% endif %}
[gcode_macro _TOOLHEAD_STANDBY]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set config_z_hop = printer["gcode_macro RatOS"].toolchange_zhop|default(2.0)|float %}
{% set toolchange_standby_temp = printer["gcode_macro RatOS"].toolchange_standby_temp|default(-1)|float %}
RATOS_ECHO PREFIX="IDEX" MSG="Putting toolhead T{toolhead} into standby mode."
DEBUG_ECHO PREFIX="_TOOLHEAD_STANDBY" MSG="toolhead: {toolhead}, config_z_hop: {config_z_hop}, toolchange_standby_temp: {toolchange_standby_temp}"
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
M106.1 S0
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={config_z_hop} T={toolhead} SYNC=0
PARK_TOOLHEAD
_CLEANING_MOVE TOOLHEAD={toolhead}
{% if toolchange_standby_temp > -1 %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={toolchange_standby_temp}
{% endif %}
{% if toolchange_standby_temp > -1 %}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=standby VALUE=True
{% endif %}
_LED_TOOLHEAD_STANDBY TOOLHEAD={toolhead}
[gcode_macro _TOOLHEAD_WAKEUP]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
{% set fan_speed = params.FAN_SPEED|float %}
{% set new_x = params.X|default(-1)|float %}
{% set new_y = params.Y|default(-1)|float %}
{% set new_z = params.Z|default(-1)|float %}
{% set toolshift_count = params.TOOLSHIFT_COUNT|default(0)|int %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set config_z_hop = printer["gcode_macro RatOS"].toolchange_zhop|default(2.0)|float %}
{% set purge = printer["gcode_macro RatOS"].toolchange_purge|default(0)|float %}
{% set e = printer["gcode_macro RatOS"].toolchange_retraction %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
{% if toolshift_count == 1 %}
{% set purge = printer["gcode_macro RatOS"].toolchange_first_purge %}
{% endif %}
{% set needs_wakeup = true if printer["gcode_macro T%s" % toolhead].standby|default(false)|lower == 'true' else false %}
RATOS_ECHO PREFIX="IDEX" MSG="Waking up toolhead T{toolhead}. Please wait for extruder to heat up..."
DEBUG_ECHO PREFIX="_TOOLHEAD_WAKEUP" MSG="toolhead: {toolhead}, fan_speed: {fan_speed}, new_x: {new_x}, new_y: {new_y}, new_z: {new_z}, config_z_hop: {config_z_hop}"
_LED_TOOLHEAD_WAKEUP TOOLHEAD={toolhead}
SET_DUAL_CARRIAGE CARRIAGE={toolhead} MODE=PRIMARY
_SET_TOOLHEAD_OFFSET T={toolhead} MOVE=1
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if toolhead == 0 else toolhead}
{% set max_accel = printer.toolhead.max_accel|float %}
{% set square_corner_velocity = printer.toolhead.square_corner_velocity|float %}
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0 SQUARE_CORNER_VELOCITY=20
{% set extruder_first_layer_temp = (printer["gcode_macro START_PRINT"].extruder_first_layer_temp|default("")).split(",") %}
{% set extruder_other_layer_temp = (printer["gcode_macro START_PRINT"].extruder_other_layer_temp|default("")).split(",") %}
{% if needs_wakeup %}
{% if printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|int < 2 %}
{% set temp = extruder_first_layer_temp[toolhead]|float %}
{% else %}
{% set temp = extruder_other_layer_temp[toolhead]|float %}
{% endif %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET={temp}
TEMPERATURE_WAIT SENSOR={'extruder' if toolhead == 0 else 'extruder1'} MINIMUM={temp} MAXIMUM={temp + 5}
{% endif %}
_LED_PRINTING TOOLHEAD={toolhead}
{% if purge > 0 %}
_MOVE_TO_LOADING_POSITION TOOLHEAD={toolhead}
_PURGE_FILAMENT TOOLHEAD={toolhead} E={purge}
_CLEANING_MOVE TOOLHEAD={toolhead}
{% endif %}
{% if fan_speed > 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={fan_speed if toolhead == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={fan_speed if toolhead == 1 else 0}
M106.1 S{fan_speed}
{% endif %}
G92 E0
G1 E-{e} F{feedrate}
G92 E0
{% if new_x >= 0 and new_y >= 0 %}
G1 X{new_x} Y{new_y} F{speed}
_ZDROP_AFTER_TOOLCHANGE Z_DROP={config_z_hop} T={toolhead} SYNC=0
{% endif %}
SET_VELOCITY_LIMIT ACCEL={max_accel} MINIMUM_CRUISE_RATIO=0.5 SQUARE_CORNER_VELOCITY={square_corner_velocity}
SET_GCODE_VARIABLE MACRO=T{toolhead} VARIABLE=standby VALUE=False
[gcode_macro _TOOLCHANGE]
variable_toolshift_count = 0
gcode =
{% set new_t = params.T|default(-1)|int %}
{% set new_x = params.X|default(-1.0)|float %}
{% set new_y = params.Y|default(-1.0)|float %}
{% set new_z = params.Z|default(-1.0)|float %}
{% set park_t0 = params.PARK_T0|default(-1)|float %}
{% set park_t1 = params.PARK_T1|default(-1)|float %}
{% set toolshift = true if params.TOOLSHIFT|default(true)|lower == 'true' else false %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="T: {new_t}, X: {new_x}, Y: {new_y}, Z: {new_z}, PARK_T0: {park_t0}, PARK_T1: {park_t1}, IS_PRINTING_GCODE: {is_printing_gcode}, TOOLSHIFT: {toolshift}"
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set config_z_hop = printer["gcode_macro RatOS"].toolchange_zhop|default(2.0)|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set center_x = printable_x_max / 2 %}
{% set acceleration = printer["gcode_macro RatOS"].toolchange_travel_accel %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% set parking_position_act_t = printer["gcode_macro T%s" % act_t].parking_position|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|int %}
{% if park_t0 >= 0 and park_t1 >= 0 %}
{% set parking_position_t0 = park_t0 %}
{% set parking_position_t1 = park_t1 %}
{% set parking_position_act_t = park_t0 if act_t == 0 else park_t1 %}
{% endif %}
{% if not is_printing_gcode and not toolshift %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="Changing tool to T{new_t} without retracting/extruding or moving the toolheads except for parking."
{% if "xyz" in printer.toolhead.homed_axes %}
G1 X{parking_position_act_t} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={new_t} MODE=PRIMARY
_SET_TOOLHEAD_OFFSET T={new_t} MOVE={1 if "xyz" in printer.toolhead.homed_axes else 0}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% else %}
G90
{% set max_accel = printer.toolhead.max_accel|float %}
{% set square_corner_velocity = printer.toolhead.square_corner_velocity|float %}
SET_VELOCITY_LIMIT ACCEL={acceleration} MINIMUM_CRUISE_RATIO=0 SQUARE_CORNER_VELOCITY=20
{% if not is_printing_gcode and toolshift and new_x < 0 and new_y < 0 %}
{% set new_x = center_x %}
{% set new_y = printer.gcode_move.gcode_position.y|float %}
{% endif %}
{% if new_x < 0 or new_y < 0 %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="No new X or Y position given, parking the active toolhead and activating the new toolhead without moving it."
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={config_z_hop} T={new_t}
{% if "x" in printer.toolhead.homed_axes %}
G1 X{parking_position_act_t} F{speed}
{% endif %}
{% if is_printing_gcode %}
_EXTRUDE T={new_t}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE={new_t}
_SET_TOOLHEAD_OFFSET T={new_t} MOVE={1 if "xyz" in printer.toolhead.homed_axes else 0}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% else %}
{% if "xyz" not in printer.toolhead.homed_axes %}
SET_DUAL_CARRIAGE CARRIAGE={new_t}
_SET_TOOLHEAD_OFFSET T={new_t}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% else %}
{% set svv = printer.save_variables.variables %}
{% if new_t == default_toolhead %}
{% set xoffset = svv.idex_xoffset %}
{% set yoffset = svv.idex_yoffset %}
{% set zoffset = svv.idex_zoffset %}
{% else %}
{% set xoffset = 0 - svv.idex_xoffset %}
{% set yoffset = 0 - svv.idex_yoffset %}
{% set zoffset = 0 - svv.idex_zoffset %}
{% endif %}
{% if svv.idex_applied_offset == new_t %}
{% set xoffset = 0 %}
{% set yoffset = 0 %}
{% set zoffset = 0 %}
{% endif %}
{% set gcode_z = printer.gcode_move.gcode_position.z|float %}
{% set toolhead_z = printer.toolhead.position.z|float %}
{% if new_t == 0 %}
{% set t0_act_x = parking_position_t0 %}
{% set t1_act_x = printer.toolhead.position.x|float %}
{% set t0_new_x = new_x %}
{% set t1_new_x = parking_position_t1 %}
{% set t0_distance = t0_new_x - t0_act_x %}
{% set t1_distance = t1_new_x - t1_act_x %}
{% set calc_z_hop = config_z_hop %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="Shifting to T0."
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="T0_ACT_X: {t0_act_x}, T1_ACT_X: {t1_act_x}, T0_NEW_X: {t0_new_x}, T1_NEW_X: {t1_new_x}, T0_DISTANCE: {t0_distance}, T1_DISTANCE: {t1_distance}"
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={calc_z_hop} T={new_t} SYNC=1
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_act_x} F{speed}
{% if t0_distance >= t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_act_x + (t1_new_x - t1_act_x)} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_new_x + xoffset} F{speed}
{% elif t0_distance < t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_new_x + xoffset} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{t1_new_x} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_new_x + xoffset} F{speed}
{% endif %}
{% if svv.idex_applied_offset != new_t %}
SET_GCODE_OFFSET X_ADJUST={xoffset} Y_ADJUST={yoffset} MOVE=0 SPEED={speed}
G1 X{t0_new_x} Y{new_y} F{speed}
SET_GCODE_OFFSET Z_ADJUST={zoffset} MOVE=1 SPEED={z_speed}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE=0
RATOS_ECHO PREFIX="IDEX" MSG="Toolhead offset applied for T0: X={xoffset} Y={yoffset} Z={zoffset}"
{% if printer.configfile.settings.beacon is defined and is_printing_gcode %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={new_t}
{% endif %}
{% endif %}
{% set calc_z_drop = config_z_hop %}
_ZDROP_AFTER_TOOLCHANGE Z_DROP={calc_z_drop} T={new_t} SYNC=1
{% elif new_t == 1 %}
{% set t0_act_x = printer.toolhead.position.x|float %}
{% set t1_act_x = parking_position_t1 %}
{% set t0_new_x = parking_position_t0 %}
{% set t1_new_x = new_x %}
{% set t0_distance = t0_act_x - t0_new_x %}
{% set t1_distance = t1_act_x - t1_new_x %}
{% set calc_z_hop = config_z_hop %}
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="Shifting to T1."
DEBUG_ECHO PREFIX="_TOOLCHANGE" MSG="T0_ACT_X: {t0_act_x}, T1_ACT_X: {t1_act_x}, T0_NEW_X: {t0_new_x}, T1_NEW_X: {t1_new_x}, T0_DISTANCE: {t0_distance}, T1_DISTANCE: {t1_distance}"
_ZHOP_BEFORE_TOOLCHANGE Z_HOP={calc_z_hop} T={new_t} SYNC=1
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{t1_act_x} F{speed}
{% if t0_distance >= t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_act_x - t1_distance + xoffset} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
G1 X{t0_new_x + xoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
{% elif t0_distance < t1_distance %}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
G1 X{t0_new_x} Y{new_y + yoffset} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{t1_new_x + xoffset} F{speed}
{% endif %}
{% if svv.idex_applied_offset != new_t %}
SET_GCODE_OFFSET X_ADJUST={xoffset} Y_ADJUST={yoffset} MOVE=0 SPEED={speed}
G1 X{t1_new_x} Y{new_y} F{speed}
SET_GCODE_OFFSET Z_ADJUST={zoffset} MOVE=1 SPEED={z_speed}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE=1
RATOS_ECHO PREFIX="IDEX" MSG="Toolhead offset applied for T1: X={xoffset} Y={yoffset} Z={zoffset}"
{% if printer.configfile.settings.beacon is defined and is_printing_gcode %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={new_t}
{% endif %}
{% endif %}
{% set calc_z_drop = config_z_hop %}
_ZDROP_AFTER_TOOLCHANGE Z_DROP={calc_z_drop} T={new_t} SYNC=1
{% endif %}
ACTIVATE_EXTRUDER EXTRUDER=extruder{'' if new_t == 0 else new_t}
{% endif %}
{% endif %}
SET_VELOCITY_LIMIT ACCEL={max_accel} MINIMUM_CRUISE_RATIO=0.5 SQUARE_CORNER_VELOCITY={square_corner_velocity}
{% endif %}
[gcode_macro _ZHOP_BEFORE_TOOLCHANGE]
gcode =
{% set t = params.T|int %}
{% set sync = params.SYNC|default(0)|int %}
{% set z_hop = params.Z_HOP|default(0.0)|float %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].toolchange_zspeed|default(25)|float %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
{% set combined_zhop = true if printer["gcode_macro RatOS"].toolchange_combined_zhop|default(true)|lower == 'true' else false %}
{% set both_toolheads = true if printer["gcode_macro START_PRINT"].both_toolheads|default(true)|lower == 'true' else false %}
{% set e = printer["gcode_macro RatOS"].toolchange_retraction %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="T: {t}, BOTH_TOOLHEADS: {both_toolheads}, SYNC: {sync}, IS_PRINTING_GCODE: {is_printing_gcode}, Z_HOP: {z_hop}"
G91
M82
G92 E0
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
{% endif %}
{% endif %}
{% if combined_zhop and is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="COMBINED_ZHOP G1 Z+{z_hop} E-{e} F{speed * 60}"
G1 Z+{z_hop} E-{e} F{speed * 60}
{% else %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="ZHOP G1 Z+{z_hop} F{speed * 60}"
G1 Z+{z_hop} F{speed * 60}
{% if is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="RETRACT G1 E-{e} F{feedrate}"
G1 E-{e} F{feedrate}
{% endif %}
{% endif %}
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZHOP_BEFORE_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
{% endif %}
{% endif %}
G90
G92 E0
_SET_EXTRUSION_MODE
[gcode_macro _ZDROP_AFTER_TOOLCHANGE]
gcode =
{% set t = params.T|int %}
{% set sync = params.SYNC|default(0)|int %}
{% set z_drop = params.Z_DROP|default(0.0)|float %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].toolchange_zspeed|default(25)|float %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
{% set combined_zhop = true if printer["gcode_macro RatOS"].toolchange_combined_zhop|default(true)|lower == 'true' else false %}
{% set both_toolheads = true if printer["gcode_macro START_PRINT"].both_toolheads|default(true)|lower == 'true' else false %}
{% set e = printer["gcode_macro RatOS"].toolchange_extrusion %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="T: {t}, BOTH_TOOLHEADS: {both_toolheads}, SYNC: {sync}, IS_PRINTING_GCODE: {is_printing_gcode}, Z_DROP: {z_drop}"
G91
M82
G92 E0
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder1
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
{% endif %}
{% endif %}
{% if combined_zhop and is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="COMBINED_ZDROP G1 Z-{z_drop} E{e} F{speed * 60}"
G1 Z-{z_drop} E{e} F{speed * 60}
{% else %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="ZDROP G1 Z-{z_drop} F{speed * 60}"
G1 Z-{z_drop} F{speed * 60}
{% if is_printing_gcode %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="EXTRUDE G1 E{e} F{feedrate}"
G1 E{e} F{feedrate}
{% endif %}
{% endif %}
{% if sync == 1 and t == 0 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
{% endif %}
{% elif sync == 1 and t == 1 and is_printing_gcode and both_toolheads %}
{% if printer['extruder'].can_extrude|lower == 'true' and printer['extruder1'].can_extrude|lower == 'true' %}
DEBUG_ECHO PREFIX="_ZDROP_AFTER_TOOLCHANGE" MSG="UNSYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1"
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder1
{% endif %}
{% endif %}
G90
G92 E0
_SET_EXTRUSION_MODE
[gcode_macro _EXTRUDE]
gcode =
{% set t = params.T|int %}
{% set e = printer["gcode_macro RatOS"].toolchange_extrusion %}
{% set feedrate = printer["gcode_macro RatOS"].toolchange_feedrate %}
DEBUG_ECHO PREFIX="_EXTRUDE" MSG="G1 E{e} F{feedrate * 60}"
G91
M82
G92 E0
G1 E{e} F{feedrate * 60}
G90
G92 E0
_SET_EXTRUSION_MODE
[gcode_macro _DEACTIVATE_TOOLHEAD]
gcode =
{% set toolhead = params.TOOLHEAD|int %}
DEBUG_ECHO PREFIX="_DEACTIVATE_TOOLHEAD" MSG="TOOLHEAD {toolhead}"
{% if toolhead == 0 %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
{% else %}
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
{% endif %}
M106.1 S0
SET_HEATER_TEMPERATURE HEATER={'extruder' if toolhead == 0 else 'extruder1'} TARGET=0
_LED_DEACTIVATE_TOOLHEAD TOOLHEAD={toolhead}
[delayed_gcode _INIT_TOOLHEADS]
initial_duration = 0.1
gcode =
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|int %}
{% set svv = printer.save_variables.variables %}
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE={default_toolhead}
_IDEX_SINGLE INIT=1
{% if printer.configfile.settings.dual_carriage.safe_distance is defined %}
{% if printer.configfile.settings.dual_carriage.safe_distance|float < 50 %}
{ action_emergency_stop("Dual carriage safe_distance seems to be too low!") }
{% endif %}
{% else %}
{ action_emergency_stop("Dual carriage safe_distance not defined!") }
{% endif %}
[gcode_macro _SET_TOOLHEAD_OFFSET]
gcode =
{% set t = params.T|int %}
{% set move = params.MOVE|default(0)|int %}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="T: {t}, MOVE: {move}"
{% set svv = printer.save_variables.variables %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% if "xyz" not in printer.toolhead.homed_axes %}
{% set move = 0 %}
{% endif %}
{% if svv.idex_applied_offset != t %}
{% if t != printer["gcode_macro RatOS"].default_toolhead|int %}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_GCODE_OFFSET X_ADJUST: {(-svv.idex_xoffset)} Y_ADJUST: {(-svv.idex_yoffset)} MOVE: {move} SPEED: {speed}"
SET_GCODE_OFFSET X_ADJUST={(-svv.idex_xoffset)} Y_ADJUST={(-svv.idex_yoffset)} MOVE={move} SPEED={speed}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_GCODE_OFFSET Z_ADJUST: {(-svv.idex_zoffset)} MOVE: {move} SPEED: {z_speed}"
SET_GCODE_OFFSET Z_ADJUST={(-svv.idex_zoffset)} MOVE={move} SPEED={z_speed}
{% else %}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_ X_ADJUST: {svv.idex_xoffset} Y_ADJUST: {svv.idex_yoffset} MOVE: {move} SPEED: {speed}"
SET_GCODE_OFFSET X_ADJUST={svv.idex_xoffset} Y_ADJUST={svv.idex_yoffset} MOVE={move} SPEED={speed}
DEBUG_ECHO PREFIX="_SET_TOOLHEAD_OFFSET" MSG="SET_GCODE_OFFSET Z_ADJUST: {svv.idex_zoffset} MOVE: {move} SPEED: {z_speed}"
SET_GCODE_OFFSET Z_ADJUST={svv.idex_zoffset} MOVE={move} SPEED={z_speed}
{% endif %}
RATOS_ECHO PREFIX="IDEX" MSG="Toolhead offset applied for T{t}"
SAVE_VARIABLE VARIABLE=idex_applied_offset VALUE={t}
{% if printer.configfile.settings.beacon is defined and is_printing_gcode %}
_BEACON_SET_NOZZLE_TEMP_OFFSET TOOLHEAD={t}
{% endif %}
{% endif %}
[gcode_macro TOOLSHIFT_CONFIG]
gcode =
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_speed VALUE={params.SPEED|default(300)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_accel VALUE={params.ACCEL|default(5000)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_retraction VALUE={params.RETRACT|default(2.0)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_extrusion VALUE={params.EXTRUDE|default(2.0)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_feedrate VALUE={params.FEEDRATE|default(7200)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zhop VALUE={params.Z_HOP|default(2.0)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zspeed VALUE={params.Z_SPEED|default(25)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_combined_zhop VALUE={true if params.COMBINED_ZHOP|default(0)|int == 1 else false}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_sync_fans VALUE={true if params.SYNC_FANS|default(0)|int == 1 else false}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_prepurging_timer VALUE={params.AUTO_PURGE_TIME|default(0)|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_purge VALUE={params.PURGE|default(25)|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_standby_temp VALUE={params.STANDBY_TEMP|default(-1)|float}
[gcode_macro CALCULATE_DC_ENDSTOP]
gcode =
{% if printer["dual_carriage"] is defined %}
{% set svv = printer.save_variables.variables %}
{% set idex_xoffset = svv.idex_xoffset|float %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|float %}
{% set stepper_x_position_max = printer.configfile.settings.stepper_x.position_max|float %}
{% set stepper_x_position_endstop = printer.configfile.settings.stepper_x.position_endstop|float %}
{% set dual_carriage_position_max = printer.configfile.settings.dual_carriage.position_max|float %}
{% set dual_carriage_position_endstop = printer.configfile.settings.dual_carriage.position_endstop|float %}
{% set line_1 = "_N_[dual_carriage]" %}
{% set line_2 = "position_max: %.3f" % (dual_carriage_position_max + idex_xoffset) %}
{% set line_3 = "position_endstop: %.3f" % (dual_carriage_position_endstop + idex_xoffset) %}
{% set line_4 = "_N_[gcode_macro RatOS]" %}
{% set line_5 = "variable_bed_margin_x: [%.3f, %.3f]" % (stepper_x_position_endstop|abs, dual_carriage_position_max - stepper_x_position_max + idex_xoffset) %}
{% set line_6 = "_N_[gcode_macro _VAOC]" %}
{% set line_7 = "variable_expected_camera_x_position: %.3f" % idex_xcontrolpoint %}
{% set line_8 = "variable_expected_camera_y_position: %.3f" % idex_ycontrolpoint %}
{% set line_9 = "_N_[gcode_macro T0]" %}
{% set line_10 = "variable_parking_position: %.3f" % (stepper_x_position_endstop + 2) %}
{% set line_11 = "_N_[gcode_macro T1]" %}
{% set line_12 = "variable_parking_position: %.3f" % (dual_carriage_position_endstop + idex_xoffset - 2) %}
CONSOLE_ECHO TITLE="Copy and paste to your printer.cfg" TYPE="info" MSG={'"%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_ "' % (line_1, line_2, line_3, line_4, line_5, line_6, line_7, line_8, line_9, line_10, line_11, line_12)}
{% else %}
CONSOLE_ECHO TITLE="Invalid machine type" TYPE="error" MSG="This macro is only available on IDEX machines."
{% endif %}
[gcode_macro INCREASE_Y_MAX]
gcode =
{% if printer["dual_carriage"] is defined %}
{% set bed_margin_y = printer["gcode_macro RatOS"].bed_margin_y %}
{% set stepper_y_position_max = printer.configfile.settings.stepper_y.position_max|float %}
{% set stepper_y_position_endstop = printer.configfile.settings.stepper_y.position_endstop|float %}
{% set line_1 = "_N_[stepper_y]" %}
{% set line_2 = "position_max: %.3f" % (stepper_y_position_max + 1) %}
{% set line_3 = "_N_[gcode_macro RatOS]" %}
{% set line_4 = "variable_bed_margin_y: [%.3f, %.3f]" % (stepper_y_position_endstop|abs, (bed_margin_y[1] + 1)) %}
CONSOLE_ECHO TITLE="Copy and paste to your printer.cfg" TYPE="info" MSG={'"%s_N_%s_N_%s_N_%s_N_ "' % (line_1, line_2, line_3, line_4)}
{% else %}
CONSOLE_ECHO TITLE="Invalid machine type" TYPE="error" MSG="This macro is only available on IDEX machines."
{% endif %}
[gcode_macro _VAOC]
variable_is_fixed = True
variable_is_started = False
variable_is_started_at_temp = False
variable_additional_safe_distance = 50
variable_safe_z = 60
variable_auto_z_offset_calibration = True
variable_enable_camera_cooling = True
variable_camera_cooling_fan_speed = 0.3
variable_camera_cooling_temperature = 50
variable_toolchange_travel_speed = 300
variable_toolchange_travel_accel = 5000
variable_cache_toolchange_travel_speed = 300
variable_cache_toolchange_travel_accel = 5000
variable_cache_toolchange_zhop = 1.0
variable_t0_toolhead_sensor_enabled = 0
variable_t1_toolhead_sensor_enabled = 0
variable_t0_bowden_sensor_enabled = 0
variable_t1_bowden_sensor_enabled = 0
variable_loaded_skew_profile = ""
gcode =
_ECHO_VAOC_VARS
variable_expected_camera_x_position = 212.5
variable_expected_camera_y_position = 530.5
variable_beacon_contact_start_print_true_zero = True
[gcode_macro _VAOC_START]
description = Called from the front end. If T0_TEMP, T1_TEMP and BED_TEMP parameter are specified, VAOC calibration will start under real conditions at printing temp.
gcode =
{% set t0_temp = params.T0_TEMP|default(0)|int %}
{% set t1_temp = params.T1_TEMP|default(0)|int %}
{% set bed_temp = params.BED_TEMP|default(0)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set loaded_skew_profile = printer["gcode_macro SKEW_PROFILE"].loaded_profile|default("") %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=loaded_skew_profile VALUE='"{loaded_skew_profile}"'
{% if t0_temp > 0 and t1_temp > 0 and bed_temp > 0 %}
{% if not is_fixed %}
_LED_START_PRINTING_ERROR
M84
{ action_raise_error("VAOC calibration at temp works only with a fixed installed VAOC device.") }
{% endif %}
_VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t0_toolhead_sensor_enabled VALUE={1 if printer["filament_switch_sensor toolhead_filament_sensor_t0"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t0 ENABLE=0
{% endif %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t1_toolhead_sensor_enabled VALUE={1 if printer["filament_switch_sensor toolhead_filament_sensor_t1"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t1 ENABLE=0
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t0"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t0_bowden_sensor_enabled VALUE={1 if printer["filament_switch_sensor bowden_filament_sensor_t0"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t0 ENABLE=0
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t1"] is defined %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=t1_bowden_sensor_enabled VALUE={1 if printer["filament_switch_sensor bowden_filament_sensor_t1"].enabled|lower == "true" else 0}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t1 ENABLE=0
{% endif %}
START_PRINT EXTRUDER_TEMP={t0_temp},{t1_temp} EXTRUDER_OTHER_LAYER_TEMP={t0_temp},{t1_temp} BED_TEMP={bed_temp} CHAMBER_TEMP={chamber_temp} INITIAL_TOOL=0 TOTAL_LAYER_COUNT=1 X0={(printable_x_max / 2 - 10)} Y0={(printable_y_max / 2 - 10)} X1={(printable_x_max / 2 + 10)} Y1={(printable_y_max / 2 + 10)} TOTAL_TOOLSHIFTS=1 FIRST_X={printable_x_max / 2} FIRST_Y={printable_y_max / 2} MIN_X={(printable_x_max / 2 - 10)} MAX_X={(printable_x_max / 2 + 10)} USED_TOOLS=0,1
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=is_printing_gcode VALUE=False
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started_at_temp VALUE=True
{% endif %}
_START_VAOC
[gcode_macro _START_VAOC]
description = Called from _VAOC_START. Do not call it manually.
gcode =
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set additional_safe_distance = printer["gcode_macro _VAOC"].additional_safe_distance|float %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set expected_camera_x_position = printer["gcode_macro _VAOC"].expected_camera_x_position|default(0)|float %}
{% set expected_camera_y_position = printer["gcode_macro _VAOC"].expected_camera_y_position|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(printable_x_max/2)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(printable_y_max/2)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
DEBUG_ECHO PREFIX="VAOC_START" MSG={'"xcontrolpoint: %.6f, ycontrolpoint: %.6f, zcontrolpoint: %.6f, expected_camera_x_position: %.6f, expected_camera_y_position: %.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint, idex_zcontrolpoint, expected_camera_x_position, expected_camera_y_position)}
_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS
_VAOC_ENSURE_SAFE_Z_HEIGHT
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=cache_toolchange_travel_speed VALUE={printer["gcode_macro RatOS"].toolchange_travel_speed|int}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=cache_toolchange_travel_accel VALUE={printer["gcode_macro RatOS"].toolchange_travel_accel|int}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=cache_toolchange_zhop VALUE={printer["gcode_macro RatOS"].toolchange_zhop|float}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_speed VALUE={printer["gcode_macro _VAOC"].toolchange_travel_speed|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_accel VALUE={printer["gcode_macro _VAOC"].toolchange_travel_accel|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zhop VALUE=0
{% if auto_z_offset %}
{% set additional_safe_distance = 20 %}
{% set idex_xcontrolpoint = idex_xcontrolpoint + z_offset_probe_x_offset %}
{% set idex_ycontrolpoint = idex_ycontrolpoint + z_offset_probe_y_offset %}
{% endif %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% if is_fixed %}
{% set parking_position_t0 = idex_xcontrolpoint - safe_distance - additional_safe_distance %}
{% set parking_position_t1 = idex_xcontrolpoint + safe_distance + additional_safe_distance %}
{% endif %}
RATOS_ECHO PREFIX="VAOC" MSG={'"START X_REFERENCE:%.6f Y_REFERENCE:%.6f Z_REFERENCE:%.6f PARK_T0:%.6f PARK_T1:%.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint, idex_zcontrolpoint, parking_position_t0, parking_position_t1)}
_LED_VAOC_ON
MAYBE_HOME
M400
_LOAD_RATOS_SKEW_PROFILE
{% if printer.toolhead.position.z|float < safe_z %}
G1 Z{safe_z} F{z_speed}
{% endif %}
{% if printer.toolhead.position.y|float > printable_y_max %}
G1 Y{printable_y_max} F{speed}
{% endif %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% if idex_mode == "copy" or idex_mode == "mirror" %}
IDEX_SINGLE
{% endif %}
{% if is_fixed %}
_SELECT_TOOL T=0 TOOLSHIFT=false
{% if default_toolhead == 0 %}
G1 X{idex_xcontrolpoint} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{idex_xcontrolpoint + safe_distance + additional_safe_distance} F{speed}
{% else %}
G1 X{idex_xcontrolpoint - safe_distance - additional_safe_distance} F{speed}
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
G1 X{idex_xcontrolpoint} F{speed}
{% endif %}
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
{% else %}
_SELECT_TOOL T={default_toolhead} TOOLSHIFT=false
{% endif %}
G1 X{idex_xcontrolpoint} F{speed}
G1 Y{idex_ycontrolpoint} F{speed}
G1 Z{idex_zcontrolpoint} F{z_speed}
_SELECT_TOOL T={default_toolhead} X={idex_xcontrolpoint} Y={idex_ycontrolpoint} PARK_T0={parking_position_t0} PARK_T1={parking_position_t1}
{% if not auto_z_offset %}
_VAOC_SET_CAMERA_COOLING T={default_toolhead}
{% endif %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started VALUE=True
[gcode_macro _VAOC_END]
gcode =
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set center_y = printable_y_max / 2 %}
DEBUG_ECHO PREFIX="_VAOC_END" MSG="printable_y_max: {printable_y_max}, center_y: {center_y}, safe_z: {safe_z}"
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
M106.1 S0
{% if printer.toolhead.position.z|float < safe_z %}
G1 Z{safe_z} F{z_speed}
{% endif %}
G1 Y{center_y} F{speed}
_IDEX_SINGLE INIT=1
_LED_VAOC_OFF
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_speed VALUE={printer["gcode_macro _VAOC"].cache_toolchange_travel_speed|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_travel_accel VALUE={printer["gcode_macro _VAOC"].cache_toolchange_travel_accel|int}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=toolchange_zhop VALUE={printer["gcode_macro _VAOC"].cache_toolchange_zhop|float}
{% if printer["gcode_macro _VAOC"].is_started_at_temp|default(true)|lower == 'true' %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t0 ENABLE={printer["gcode_macro _VAOC"].t0_toolhead_sensor_enabled|int}
{% endif %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
SET_FILAMENT_SENSOR SENSOR=toolhead_filament_sensor_t1 ENABLE={printer["gcode_macro _VAOC"].t1_toolhead_sensor_enabled|int}
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t0"] is defined %}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t0 ENABLE={printer["gcode_macro _VAOC"].t0_bowden_sensor_enabled|int}
{% endif %}
{% if printer["filament_switch_sensor bowden_filament_sensor_t1"] is defined %}
SET_FILAMENT_SENSOR SENSOR=bowden_filament_sensor_t1 ENABLE={printer["gcode_macro _VAOC"].t1_bowden_sensor_enabled|int}
{% endif %}
{% endif %}
{% set loaded_skew_profile = printer["gcode_macro _VAOC"].loaded_skew_profile|default("") %}
{% if loaded_skew_profile != "" %}
SKEW_PROFILE LOAD={loaded_skew_profile}
{% else %}
SET_SKEW CLEAR=1
{% endif %}
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started VALUE=False
SET_GCODE_VARIABLE MACRO=_VAOC VARIABLE=is_started_at_temp VALUE=False
[gcode_macro _VAOC_LOAD_TOOL]
gcode =
{% set t = params.T|default(0)|int %}
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set auto_temp_offset = true if params.AUTO_TEMP_OFFSET|default(false)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set safe_distance = printer.configfile.settings.dual_carriage.safe_distance|float %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set additional_safe_distance = printer["gcode_macro _VAOC"].additional_safe_distance|float %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
{% set toolhead_zoffset = svv.idex_zoffset|default(0)|float %}
{% if auto_z_offset %}
{% set additional_safe_distance = 20 %}
{% set idex_xcontrolpoint = idex_xcontrolpoint + z_offset_probe_x_offset %}
{% set idex_ycontrolpoint = idex_ycontrolpoint + z_offset_probe_y_offset %}
{% endif %}
RATOS_ECHO PREFIX="VAOC" MSG={'"Move T%s to control point: X%.6f Y%.6f Z%.6f IS_FIXED=%s"' % (t, idex_xcontrolpoint, idex_ycontrolpoint, idex_zcontrolpoint, is_fixed)}
{% if not auto_temp_offset and not auto_z_offset %}
_VAOC_SET_CAMERA_COOLING T={t}
{% endif %}
{% set parking_position_t0 = printer["gcode_macro T0"].parking_position|float %}
{% set parking_position_t1 = printer["gcode_macro T1"].parking_position|float %}
{% if is_fixed %}
{% set parking_position_t0 = idex_xcontrolpoint - safe_distance - additional_safe_distance %}
{% set parking_position_t1 = idex_xcontrolpoint + safe_distance + additional_safe_distance %}
{% endif %}
{% set current_z = printer.toolhead.position.z|float %}
{% set lowest_toolhead_z = [current_z, current_z - toolhead_zoffset]|min %}
{% if lowest_toolhead_z < safe_z %}
G1 Z{[safe_z, safe_z + toolhead_zoffset]|max} F{z_speed}
{% else %}
G1 Z{idex_zcontrolpoint} F{z_speed}
{% endif %}
_SELECT_TOOL T={t} X={idex_xcontrolpoint} Y={idex_ycontrolpoint} PARK_T0={parking_position_t0} PARK_T1={parking_position_t1}
G1 Z{idex_zcontrolpoint} F{z_speed}
[gcode_macro _VAOC_SET_CAMERA_COOLING]
gcode =
{% set t = params.T|default(0)|int %}
{% set enable_camera_cooling = true if printer["gcode_macro _VAOC"].enable_camera_cooling|default(true)|lower == 'true' else false %}
{% set camera_cooling_temperature = printer["gcode_macro _VAOC"].camera_cooling_temperature|float %}
{% set camera_cooling_fan_speed = printer["gcode_macro _VAOC"].camera_cooling_fan_speed|float %}
{% if printer.heater_bed.temperature >= camera_cooling_temperature and enable_camera_cooling %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED={camera_cooling_fan_speed if t == 0 else 0}
SET_FAN_SPEED FAN=part_fan_t1 SPEED={camera_cooling_fan_speed if t == 1 else 0}
M106.1 S{camera_cooling_fan_speed}
{% else %}
SET_FAN_SPEED FAN=part_fan_t0 SPEED=0
SET_FAN_SPEED FAN=part_fan_t1 SPEED=0
M106.1 S0
{% endif %}
[gcode_macro _VAOC_SET_TOOL]
gcode =
{% set svv = printer.save_variables.variables %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% if toolhead == printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set x = printer.gcode_move.gcode_position.x|float %}
{% set y = printer.gcode_move.gcode_position.y|float %}
{% set z = printer.gcode_move.gcode_position.z|float %}
SAVE_VARIABLE VARIABLE=idex_xcontrolpoint VALUE={x}
SAVE_VARIABLE VARIABLE=idex_ycontrolpoint VALUE={y}
SAVE_VARIABLE VARIABLE=idex_zcontrolpoint VALUE={z}
RATOS_ECHO PREFIX="VAOC" MSG={'"Control point was set: X%.6f Y%.6f Z%.6f"' % (x, y, z)}
{% else %}
{% set move_diff_x = printer.gcode_move.gcode_position.x|float - svv.idex_xcontrolpoint|float %}
{% set move_diff_y = printer.gcode_move.gcode_position.y|float - svv.idex_ycontrolpoint|float %}
{% set move_diff_z = printer.gcode_move.gcode_position.z|float - svv.idex_zcontrolpoint|float %}
SET_GCODE_OFFSET X_ADJUST={move_diff_x} Y_ADJUST={move_diff_y} Z_ADJUST={move_diff_z} MOVE=0
{% set new_x_offset = svv.idex_xoffset - move_diff_x %}
{% set new_y_offset = svv.idex_yoffset - move_diff_y %}
{% set new_z_offset = svv.idex_zoffset - move_diff_z %}
SAVE_VARIABLE VARIABLE=idex_xoffset VALUE={new_x_offset}
SAVE_VARIABLE VARIABLE=idex_yoffset VALUE={new_y_offset}
SAVE_VARIABLE VARIABLE=idex_zoffset VALUE={new_z_offset}
RATOS_ECHO PREFIX="VAOC" MSG={'"T%s offset was set: X%.6f Y%.6f Z%.6f"' % (toolhead, new_x_offset, new_y_offset, new_z_offset)}
{% endif %}
[gcode_macro _VAOC_MOVE]
gcode =
{% set x = params.X|default(0)|float %}
{% set y = params.Y|default(0)|float %}
{% set z = params.Z|default(0)|float %}
G91
{% if z != 0 %}
RATOS_ECHO PREFIX="VAOC" MSG={'"Move toolhead: G1 Z%.6f F300"' % (z)}
G1 Z{z} F300
{% else %}
{% if x <=2 and y <=2 %}
RATOS_ECHO PREFIX="VAOC" MSG={'"Move toolhead: G1 X%.6f Y%.6f F18000"' % (x, y)}
G1 X{x} Y{y} F18000
{% endif %}
{% endif %}
G90
[gcode_macro _VAOC_CALIBRATE_Z_OFFSET]
gcode =
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set is_started = true if printer["gcode_macro _VAOC"].is_started|default(false)|lower == 'true' else false %}
{% if printer["z_offset_probe"] is defined and is_started %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
_VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT
_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS
_VAOC_SET_TOOL
{% set act_z = printer.toolhead.position.z|float %}
{% if auto_z_offset %}
_START_VAOC AUTO_Z_OFFSET=True
_VAOC_PROBE_Z_OFFSET AUTO_Z_OFFSET=True
_VAOC_LOAD_TOOL T={0 if default_toolhead == 1 else 1} AUTO_Z_OFFSET=True
_VAOC_PROBE_Z_OFFSET AUTO_Z_OFFSET=True
_VAOC_END
{% else %}
_VAOC_LOAD_TOOL T={default_toolhead}
_VAOC_PROBE_Z_OFFSET
_VAOC_LOAD_TOOL T={0 if default_toolhead == 1 else 1}
_VAOC_PROBE_Z_OFFSET
_VAOC_LOAD_TOOL T={default_toolhead}
{% endif %}
G1 Z{act_z} F{z_speed}
_VAOC_ECHO_Z_OFFSET
{% endif %}
[gcode_macro _VAOC_PROBE_Z_OFFSET]
gcode =
{% set auto_z_offset = true if params.AUTO_Z_OFFSET|default(false)|lower == 'true' else false %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
G1 Z{idex_zcontrolpoint} F{z_speed}
G1 X{idex_xcontrolpoint + z_offset_probe_x_offset} Y{idex_ycontrolpoint + z_offset_probe_y_offset} F{speed}
M400
_VAOC_Z_OFFSET_PROBE_CURRENT_POSITION
G0 Z{idex_zcontrolpoint} F{z_speed}
{% if not auto_z_offset %}
G1 X{idex_xcontrolpoint} Y{idex_ycontrolpoint} F{speed}
{% endif %}
M400
_VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT
[gcode_macro _VAOC_Z_OFFSET_PROBE_CURRENT_POSITION]
gcode =
Z_OFFSET_PROBE PROBE_SPEED=3 LIFT_SPEED=15 SAMPLES=5 SAMPLE_RETRACT_DIST=3 SAMPLES_DROP=1 SAMPLES_TOLERANCE=0.005 SAMPLES_TOLERANCE_RETRIES=10 SAMPLES_RESULT=median
[gcode_macro _VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT]
gcode =
{% if printer["z_offset_probe"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set svv = printer.save_variables.variables %}
{% if toolhead == printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
SAVE_VARIABLE VARIABLE=idex_zoffsetcontrolpoint VALUE={last_z}
RATOS_ECHO PREFIX="VAOC" MSG={'"Z-offset control point set:: %.6f"' % last_z}
{% else %}
{% set z = svv.idex_zoffsetcontrolpoint|float - last_z %}
SET_GCODE_OFFSET Z_ADJUST={svv.idex_zoffset} MOVE=0
G0 Z{svv.idex_zcontrolpoint|float} F{z_speed}
SET_GCODE_OFFSET Z_ADJUST={(0 - z)} MOVE=1
SAVE_VARIABLE VARIABLE=idex_zoffset VALUE={z}
RATOS_ECHO PREFIX="VAOC" MSG={'"T%s offset set: Z %.6f"' % (t, z)}
{% endif %}
{% endif %}
[gcode_macro _VAOC_ECHO_Z_OFFSET]
gcode =
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set svv = printer.save_variables.variables %}
RATOS_ECHO PREFIX="VAOC" MSG={'"T%s toolhead z-offset %.6f"' % (1 if default_toolhead == 0 else 0, svv.idex_zoffset)}
{% if svv.idex_zoffset|abs < 0.02 %}
CONSOLE_ECHO TITLE={'"Perfect toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="You have a perfect toolhead z-offset!" TYPE="success"
{% elif svv.idex_zoffset|abs >= 0.02 and svv.idex_zoffset|abs < 0.05 %}
CONSOLE_ECHO TITLE={'"Good toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset is good!" TYPE="success"
{% elif svv.idex_zoffset|abs >= 0.05 and svv.idex_zoffset|abs < 0.1 %}
CONSOLE_ECHO TITLE={'"High toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset could be better._N_Use minimum 0.3mm first layer height for copy and mirror mode prints." TYPE="warning"
{% elif svv.idex_zoffset|abs >= 0.1 and svv.idex_zoffset|abs < 0.2 %}
CONSOLE_ECHO TITLE={'"Bad toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset is bad._N_Copy and mirror mode prints are not recommended with it." TYPE="warning"
{% elif svv.idex_zoffset|abs >= 0.2 %}
CONSOLE_ECHO TITLE={'"Unacceptable toolhead z-offset of %.6fmm!"' % svv.idex_zoffset} MSG="Your toolhead z-offset is unacceptable._N_Do not print in copy and mirror mode with it." TYPE="alert"
{% endif %}
RATOS_ECHO PREFIX="VAOC" MSG="Toolhead z-offset calibration done!"
[gcode_macro _VAOC_CALIBRATE_TEMP_OFFSET]
gcode =
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set is_started = true if printer["gcode_macro _VAOC"].is_started|default(false)|lower == 'true' else false %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% if is_fixed and is_started and printer["z_offset_probe"] is defined and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
_VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT
_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS
_VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED
_VAOC_SET_TOOL
{% set act_z = printer.toolhead.position.z|float %}
_VAOC_LOAD_TOOL T={default_toolhead} AUTO_TEMP_OFFSET=True
_VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET
_VAOC_LOAD_TOOL T={0 if default_toolhead == 1 else 1} AUTO_TEMP_OFFSET=True
_VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET
_VAOC_LOAD_TOOL T={default_toolhead}
G1 Z{act_z} F{z_speed}
_VAOC_ECHO_NOZZLE_TEMP_OFFSETS
{% endif %}
[gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET]
variable_reference_z = 0.0
gcode =
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
G1 Z{idex_zcontrolpoint} F{z_speed}
G1 X{idex_xcontrolpoint + z_offset_probe_x_offset} Y{idex_ycontrolpoint + z_offset_probe_y_offset} F{speed}
M400
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=250
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_VAOC_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_VAOC_STORE_NOZZLE_TEMP_OFFSET TEMP=250
SET_HEATER_TEMPERATURE HEATER={"extruder" if toolhead == 0 else "extruder1"} TARGET=0
G1 X{idex_xcontrolpoint} Y{idex_ycontrolpoint} F{speed}
M400
[gcode_macro _VAOC_PROBE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set svv = printer.save_variables.variables %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(150)|float %}
RATOS_ECHO PREFIX="VAOC" MSG="Waiting for nozzle to reach {temp}°C..."
SET_HEATER_TEMPERATURE HEATER={"extruder" if toolhead == 0 else "extruder1"} TARGET={temp}
TEMPERATURE_WAIT SENSOR={"extruder" if toolhead == 0 else "extruder1"} MINIMUM={temp} MAXIMUM={temp + 2}
RATOS_ECHO PREFIX="VAOC" MSG="Waiting for thermal expansion..."
G4 P240000
RATOS_ECHO PREFIX="VAOC" MSG="Probing with nozzle temperature {temp}°C..."
_VAOC_Z_OFFSET_PROBE_CURRENT_POSITION
G0 Z{idex_zcontrolpoint} F{z_speed}
[gcode_macro _VAOC_STORE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode=='primary' else 0 %}
{% set svv = printer.save_variables.variables %}
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% if temp == 150 %}
SET_GCODE_VARIABLE MACRO=_VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET VARIABLE=reference_z VALUE={last_z}
{% else %}
{% set reference_z = printer["gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET"].reference_z|default(0)|float %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_t{toolhead} VALUE={(last_z - reference_z)}
{% endif %}
[gcode_macro _VAOC_ECHO_NOZZLE_TEMP_OFFSETS]
gcode =
{% set svv = printer.save_variables.variables %}
{% set msg = '"T0 expansion coefficient %.6fmm_N_T1 expansion coefficient %.6fmm"' % (svv.nozzle_expansion_coefficient_t0, svv.nozzle_expansion_coefficient_t1) %}
CONSOLE_ECHO TITLE="Nozzle expansion coefficients:" MSG={msg} TYPE="success"
[gcode_macro _VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS]
gcode =
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set expected_camera_x_position = printer["gcode_macro _VAOC"].expected_camera_x_position|default(0)|float %}
{% set expected_camera_y_position = printer["gcode_macro _VAOC"].expected_camera_y_position|default(0)|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(0)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(0)|float %}
DEBUG_ECHO PREFIX="_VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS" MSG={'"xcontrolpoint: %.6f, ycontrolpoint: %.6f, expected_camera_x_position: %.6f, expected_camera_y_position: %.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint, expected_camera_x_position, expected_camera_y_position)}
{% if is_fixed %}
{% if (idex_xcontrolpoint - expected_camera_x_position)|abs > 5 %}
M84
{ action_raise_error("VAOC x-control coordinate is set to %.3f but is expected to be within 5mm of %.3f. Please run '_VAOC_RESET' to roll back to default values." % (idex_xcontrolpoint, expected_camera_x_position)) }
{% endif %}
{% if (idex_ycontrolpoint - expected_camera_y_position)|abs > 5 %}
M84
{ action_raise_error("VAOC y-control coordinate is set to %.3f but is expected to be within 5mm of %.3f. Please run '_VAOC_RESET' to roll back to default values." % (idex_ycontrolpoint, expected_camera_y_position)) }
{% endif %}
{% endif %}
[gcode_macro _VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT]
gcode =
{% set is_fixed = true if printer["gcode_macro _VAOC"].is_fixed|default(true)|lower == 'true' else false %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(0)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(0)|float %}
DEBUG_ECHO PREFIX="_VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT" MSG={'"xcontrolpoint: %.6f, ycontrolpoint: %.6f"' % (idex_xcontrolpoint, idex_ycontrolpoint)}
{% if is_fixed %}
{% if (idex_xcontrolpoint - printer.gcode_move.gcode_position.x|float)|abs > 3 %}
M84
{ action_raise_error("Unexpected y-coordinate detected, VAOC aborted. Expected %.3f but got %.3f." % (idex_xcontrolpoint, printer.gcode_move.gcode_position.x|float)) }
{% endif %}
{% if (idex_ycontrolpoint - printer.gcode_move.gcode_position.y|float)|abs > 3 %}
M84
{ action_raise_error("Unexpected x-coordinate detected, VAOC aborted. Expected %.3f but got %.3f." % (idex_ycontrolpoint, printer.gcode_move.gcode_position.y|float)) }
{% endif %}
{% endif %}
[gcode_macro _VAOC_ENSURE_SAFE_Z_HEIGHT]
gcode =
{% set safe_z = printer["gcode_macro _VAOC"].safe_z|float %}
{% set svv = printer.save_variables.variables %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
{% set idex_zoffsetcontrolpoint = svv.idex_zoffsetcontrolpoint|default(0)|float %}
DEBUG_ECHO PREFIX="_VAOC_ENSURE_SAFE_Z_HEIGHT" MSG={'"idex_zcontrolpoint: %.6f, idex_zoffsetcontrolpoint: %.6f"' % (idex_zcontrolpoint, idex_zoffsetcontrolpoint)}
{% if safe_z < idex_zcontrolpoint + 2 or safe_z < idex_zoffsetcontrolpoint + 2 %}
{action_raise_error("VAOC safe_z value (%.3f) is too low, it must be higher than %.3f" % (safe_z, [idex_zoffsetcontrolpoint + 2, idex_zcontrolpoint + 2]|max))}
{% endif %}
[gcode_macro _VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED]
gcode =
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t0"].filament_detected|lower == "true" %}
_LED_START_PRINTING_ERROR
M84
{ action_raise_error("Filament detected in toolhead T0. Unload filament and make sure to clean the nozzle and the melting zone.") }
{% endif %}
{% endif %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"] is defined %}
{% if printer["filament_switch_sensor toolhead_filament_sensor_t1"].filament_detected|lower == "true" %}
_LED_START_PRINTING_ERROR
M84
{ action_raise_error("Filament detected in toolhead T1. Unload filament and make sure to clean the nozzle and the melting zone.") }
{% endif %}
{% endif %}
[gcode_macro _VAOC_RESET]
gcode =
{% set expected_camera_x_position = printer["gcode_macro _VAOC"].expected_camera_x_position|default(0)|float %}
{% set expected_camera_y_position = printer["gcode_macro _VAOC"].expected_camera_y_position|default(0)|float %}
{% set svv = printer.save_variables.variables %}
SAVE_VARIABLE VARIABLE=idex_xcontrolpoint VALUE={expected_camera_x_position}
SAVE_VARIABLE VARIABLE=idex_ycontrolpoint VALUE={expected_camera_y_position}
SAVE_VARIABLE VARIABLE=idex_zcontrolpoint VALUE=5.0
SAVE_VARIABLE VARIABLE=idex_zoffsetcontrolpoint VALUE=0.0
SAVE_VARIABLE VARIABLE=idex_xoffset VALUE=0.0
SAVE_VARIABLE VARIABLE=idex_yoffset VALUE=0.0
SAVE_VARIABLE VARIABLE=idex_zoffset VALUE=0.0
RATOS_ECHO PREFIX="VAOC" MSG="VAOC configuration resetted. Please calibrate it before using the printer."
[gcode_macro _ECHO_VAOC_VARS]
description = Echo VAOC variables to the console.
gcode =
{% for var, value in printer["gcode_macro _VAOC"].items() %}
{action_respond_info(var ~ ": " ~ value)}
{% endfor %}
[gcode_macro _VAOC_SWITCH_LED]
gcode =
{% if params.STATE|default(0)|int == 1 %}
_LED_VAOC_ON
{% else %}
_LED_VAOC_OFF
{% endif %}
[gcode_macro Z_PROBE_TEST_T0]
gcode =
{% set debug_previously_enabled = False %}
{% if printer["gcode_macro DEBUG_ECHO"].enabled|lower == 'true' %}
{% set debug_previously_enabled = True %}
{% else %}
ENABLE_DEBUG
{% endif %}
_CLEAR_PRIMARY_TOOLHEAD_RESULT
{% if params.HOT|default(False)|lower == 'true' %}
{% set t0_temp = params.T0_TEMP|default(150)|int %}
{% set bed_temp = params.BED_TEMP|default(115)|int %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating extruders"
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={t0_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating bed"
M190 S{bed_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting HOT z offset probe testing"
{% else %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting COLD z offset probe testing"
{% endif %}
_VAOC_START
{% for i in range(4) %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
{% endfor %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_VAOC_Z_PROBE_TEST_EVALUATE_T0
{% if debug_previously_enabled == False %}
DISABLE_DEBUG
{% endif %}
[gcode_macro Z_PROBE_TEST_T1]
gcode =
{% set debug_previously_enabled = False %}
{% if printer["gcode_macro DEBUG_ECHO"].enabled|lower == 'true' %}
{% set debug_previously_enabled = True %}
{% else %}
ENABLE_DEBUG
{% endif %}
_CLEAR_SECONDARY_TOOLHEAD_RESULT
{% if params.HOT|default(False)|lower == 'true' %}
{% set t1_temp = params.T1_TEMP|default(150)|int %}
{% set bed_temp = params.BED_TEMP|default(115)|int %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating extruders"
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={t1_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating bed"
M190 S{bed_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting HOT z offset probe testing"
{% else %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting COLD z offset probe testing"
{% endif %}
_VAOC_START
{% for i in range(4) %}
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
{% endfor %}
_VAOC_Z_PROBE_LOOP
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_VAOC_Z_PROBE_TEST_EVALUATE_T1
{% if debug_previously_enabled == False %}
DISABLE_DEBUG
{% endif %}
[gcode_macro Z_PROBE_TEST]
gcode =
{% set debug_previously_enabled = False %}
{% if printer["gcode_macro DEBUG_ECHO"].enabled|lower == 'true' %}
{% set debug_previously_enabled = True %}
{% else %}
ENABLE_DEBUG
{% endif %}
_CLEAR_PRIMARY_TOOLHEAD_RESULT
_CLEAR_SECONDARY_TOOLHEAD_RESULT
{% if params.HOT|default(False)|lower == 'true' %}
{% set t0_temp = params.T0_TEMP|default(150)|int %}
{% set t1_temp = params.T1_TEMP|default(150)|int %}
{% set bed_temp = params.BED_TEMP|default(115)|int %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating extruders"
SET_HEATER_TEMPERATURE HEATER="extruder" TARGET={t0_temp}
SET_HEATER_TEMPERATURE HEATER="extruder1" TARGET={t1_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Heating bed"
M190 S{bed_temp}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting HOT z offset probe testing"
{% else %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Starting COLD z offset probe testing"
{% endif %}
_VAOC_START
{% for i in range(4) %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
{% endfor %}
_VAOC_LOAD_TOOL T=0 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_PRIMARY_TOOLHEAD_RESULT
_VAOC_Z_PROBE_LOOP
_VAOC_LOAD_TOOL T=1 AUTO_Z_OFFSET=True
_VAOC_TEST_Z_OFFSET
_ADD_SECONDARY_TOOLHEAD_RESULT
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_VAOC_Z_PROBE_TEST_EVALUATE
{% if debug_previously_enabled == False %}
DISABLE_DEBUG
{% endif %}
[gcode_macro _VAOC_Z_PROBE_LOOP]
gcode =
_VAOC_END
DUMP_TMC stepper="stepper_z1"
GET_POSITION
_SHAKE_IT
_VAOC_START
[gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE]
gcode =
{% set primary_results = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].results %}
{% set secondary_results = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].results %}
{% set primary_retries = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].retries %}
{% set secondary_retries = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].retries %}
{% if primary_results|sum > 0 and primary_results|count > 0 %}
{% set primary_average = (primary_results|sum/(primary_results|count))|round(6) %}
{% else %}
{% set primary_average = 0 %}
{% endif %}
{% if secondary_results|sum > 0 and secondary_results|count > 0 %}
{% set secondary_average = (secondary_results|sum/(secondary_results|count))|round(6) %}
{% else %}
{% set secondary_average = 0 %}
{% endif %}
{% set primary_min = primary_results|min %}
{% set primary_max = primary_results|max %}
{% set primary_range = primary_max - primary_min %}
{% set secondary_min = secondary_results|min %}
{% set secondary_max = secondary_results|max %}
{% set secondary_range = secondary_max - secondary_min %}
{% if primary_retries > 0 %}
{% set primary_average_retries = primary_retries/(primary_results|count) %}
{% else %}
{% set primary_average_retries = 0 %}
{% endif %}
{% if secondary_retries > 0 %}
{% set secondary_average_retries = secondary_retries/(secondary_results|count) %}
{% else %}
{% set secondary_average_retries = 0 %}
{% endif %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T0 result: {primary_average}, Average Retries: {primary_average_retries}, Range: {primary_range|round(6)}, Min: {primary_min}, Max: {primary_max}"
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T1 result: {secondary_average}, Average Retries: {secondary_average_retries}, Range: {secondary_range|round(6)}, Min: {secondary_min}, Max: {secondary_max}"
{% if primary_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Z probe has poor repeatibility for T0. Retried {primary_retries} time(s)."
{% endif %}
{% if secondary_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Z probe has poor repeatibility for T1. Retried {secondary_retries} time(s)."
{% endif %}
{% if (primary_range - secondary_range) > 0.01 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T0 is drifting significantly more than T1."
{% endif %}
{% if (secondary_range - primary_range) > 0.01 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T1 is drifting significantly more than T0."
{% endif %}
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 result set: {primary_results}, retries: {primary_retries}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 result set: {secondary_results}, retries: {secondary_retries}"
[gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T0]
gcode =
{% set primary_results = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].results %}
{% set primary_retries = printer["gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT"].retries %}
{% if primary_results|sum > 0 and primary_results|count > 0 %}
{% set primary_average = (primary_results|sum/(primary_results|count))|round(6) %}
{% else %}
{% set primary_average = 0 %}
{% endif %}
{% set primary_min = primary_results|min %}
{% set primary_max = primary_results|max %}
{% set primary_range = primary_max - primary_min %}
{% if primary_retries > 0 %}
{% set primary_average_retries = primary_retries/(primary_results|count) %}
{% else %}
{% set primary_average_retries = 0 %}
{% endif %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T0 result: {primary_average}, Average Retries: {primary_average_retries}, Range: {primary_range|round(6)}, Min: {primary_min}, Max: {primary_max}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 result set: {primary_results}, retries: {primary_retries}"
[gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T1]
gcode =
{% set secondary_results = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].results %}
{% set secondary_retries = printer["gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT"].retries %}
{% if secondary_results|sum > 0 and secondary_results|count > 0 %}
{% set secondary_average = (secondary_results|sum/(secondary_results|count))|round(6) %}
{% else %}
{% set secondary_average = 0 %}
{% endif %}
{% set secondary_min = secondary_results|min %}
{% set secondary_max = secondary_results|max %}
{% set secondary_range = secondary_max - secondary_min %}
{% if secondary_retries > 0 %}
{% set secondary_average_retries = secondary_retries/(secondary_results|count) %}
{% else %}
{% set secondary_average_retries = 0 %}
{% endif %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Average T1 result: {secondary_average}, Average Retries: {secondary_average_retries}, Range: {secondary_range|round(6)}, Min: {secondary_min}, Max: {secondary_max}"
{% if secondary_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="Z probe has poor repeatibility for T1. Retried {secondary_retries} time(s)."
{% endif %}
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 result set: {secondary_results}, retries: {secondary_retries}"
[gcode_macro _SHAKE_IT]
gcode =
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
_Z_HOP
{% for i in range(3) %}
{% for i in range(5) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 25} Y{printable_y_max/2 + 25}
G0 X{printable_x_max/2 - 25} Y{printable_y_max/2 - 25}
G0 X{printable_x_max/2 + 25} Y{printable_y_max/2 - 25}
G0 X{printable_x_max/2 - 25} Y{printable_y_max/2 + 25}
{% endfor %}
{% for i in range(10) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 1} Y{printable_y_max/2 + 1}
G0 X{printable_x_max/2 - 1} Y{printable_y_max/2 - 1}
G0 X{printable_x_max/2 + 1} Y{printable_y_max/2 - 1}
G0 X{printable_x_max/2 - 1} Y{printable_y_max/2 + 1}
{% endfor %}
{% for i in range(2) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 50} Y{printable_y_max/2 + 50}
G0 X{printable_x_max/2 - 50} Y{printable_y_max/2 - 50}
G0 X{printable_x_max/2 + 50} Y{printable_y_max/2 - 50}
G0 X{printable_x_max/2 - 50} Y{printable_y_max/2 + 50}
{% endfor %}
{% for i in range(5) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 25} Y{printable_y_max/2}
G0 X{printable_x_max/2 - 25} Y{printable_y_max/2}
{% endfor %}
{% for i in range(5) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2} Y{printable_y_max/2 + 25}
G0 X{printable_x_max/2} Y{printable_y_max/2 - 25}
{% endfor %}
{% for i in range(10) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2 + 1} Y{printable_y_max/2}
G0 X{printable_x_max/2 - 1} Y{printable_y_max/2}
{% endfor %}
{% for i in range(10) %}
G0 X{printable_x_max/2} Y{printable_y_max/2} F{speed}
G0 X{printable_x_max/2} Y{printable_y_max/2 + 1}
G0 X{printable_x_max/2} Y{printable_y_max/2 - 1}
{% endfor %}
{% endfor %}
[gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT]
variable_results = []
variable_retries = 0
gcode =
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% set last_retries = printer["z_offset_probe"].last_retries|default(0)|float %}
{% set new_results = results + [last_z] %}
{% set new_retries = retries + last_retries %}
{% if last_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T0 probe repeatibility issues detected! Retried {last_retries} time(s)."
{% endif %}
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=results VALUE="{new_results}"
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=retries VALUE="{new_retries}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 result set updated: {new_results}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T0 retries updated: {new_retries}"
[gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT]
variable_results = []
variable_retries = 0
gcode =
{% set last_z = printer["z_offset_probe"].last_z_result|default(0)|float %}
{% set last_retries = printer["z_offset_probe"].last_retries|default(0)|float %}
{% set new_results = results + [last_z] %}
{% set new_retries = retries + last_retries %}
{% if last_retries > 0 %}
RATOS_ECHO PREFIX="Z Offset Testing" MSG="T1 probe repeatibility issues detected! Retried {last_retries} time(s)."
{% endif %}
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=results VALUE="{new_results}"
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=retries VALUE="{new_retries}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 result set updated: {new_results}"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="T1 retries updated: {new_retries}"
[gcode_macro _CLEAR_PRIMARY_TOOLHEAD_RESULT]
gcode =
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T0 result set"
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=results VALUE="[]"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T0 retries"
SET_GCODE_VARIABLE MACRO=_ADD_PRIMARY_TOOLHEAD_RESULT VARIABLE=retries VALUE=0
[gcode_macro _CLEAR_SECONDARY_TOOLHEAD_RESULT]
gcode =
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T1 result set"
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=results VALUE="[]"
DEBUG_ECHO PREFIX="Z Offset Testing" MSG="Clearing T1 retries"
SET_GCODE_VARIABLE MACRO=_ADD_SECONDARY_TOOLHEAD_RESULT VARIABLE=retries VALUE=0
[gcode_macro _VAOC_TEST_Z_OFFSET]
gcode =
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set act_t = 1 if idex_mode == 'primary' else 0 %}
{% set z_offset_probe_x_offset = printer["z_offset_probe"].x_offset|default(0)|float %}
{% set z_offset_probe_y_offset = printer["z_offset_probe"].y_offset|default(0)|float %}
{% set speed = printer["gcode_macro RatOS"].toolchange_travel_speed * 60 %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set svv = printer.save_variables.variables %}
{% set idex_xcontrolpoint = svv.idex_xcontrolpoint|default(150)|float %}
{% set idex_ycontrolpoint = svv.idex_ycontrolpoint|default(30)|float %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(50)|float %}
G1 Z{idex_zcontrolpoint} F{z_speed}
G1 X{idex_xcontrolpoint + z_offset_probe_x_offset} Y{idex_ycontrolpoint + z_offset_probe_y_offset} F{speed}
_VAOC_Z_OFFSET_PROBE_CURRENT_POSITION
G0 Z{idex_zcontrolpoint} F{z_speed}
[delayed_gcode _IDEX_INIT]
initial_duration = 0.1
gcode =
VERIFY_HYBRID_INVERTED
[gcode_macro Z_TILT_ADJUST]
rename_existing = Z_TILT_ADJUST_ORIG
gcode =
{% set beacon_contact_z_tilt_adjust_samples = printer["gcode_macro RatOS"].beacon_contact_z_tilt_adjust_samples|default(2)|int %}
{% set beacon_contact_z_tilt_adjust = true if printer["gcode_macro RatOS"].beacon_contact_z_tilt_adjust|default(true)|lower == 'true' else false %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
_IDEX_SINGLE
_SELECT_TOOL T={printer["gcode_macro RatOS"].default_toolhead|default(0)|int} TOOLSHIFT=false
{% endif %}
{% if printer["gcode_macro RatOS"].z_probe == 'stowable' %}
DEPLOY_PROBE
{% endif %}
{% if printer.configfile.settings.beacon is defined and beacon_contact_z_tilt_adjust %}
Z_TILT_ADJUST_ORIG PROBE_METHOD=contact SAMPLES={beacon_contact_z_tilt_adjust_samples}
{% else %}
Z_TILT_ADJUST_ORIG
{% endif %}
{% if printer["gcode_macro RatOS"].z_probe == 'stowable' %}
STOW_PROBE
{% endif %}
{% if printer["dual_carriage"] is defined %}
{% if idex_mode == "copy" %}
_IDEX_COPY
{% elif idex_mode == "mirror" %}
_IDEX_MIRROR
{% endif %}
{% endif %}
[stepper_x]
position_max = 500
position_endstop = -59.8
position_min = -59.8
step_pin = PF13
dir_pin = x_dir_pin
enable_pin = !PF14
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
homing_speed = 50
endstop_pin = toolboard_t0:PB6
[stepper_y]
position_max = 533.65
position_min = -14.35
position_endstop = -14.35
step_pin = PG0
dir_pin = !y_dir_pin
enable_pin = !PF15
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
homing_speed = 50
endstop_pin = PG9
[stepper_z]
position_max = 500
position_min = -7
step_pin = PC13
dir_pin = !z0_dir_pin
enable_pin = !PF1
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 4
homing_speed = 10
endstop_pin = probe:z_virtual_endstop
[bed_mesh]
horizontal_move_z = 2
mesh_min = 20,30
mesh_max = 470,462.5
probe_count = 40,40
fade_start = 1.0
fade_end = 10.0
mesh_pps = 2,2
algorithm = bicubic
bicubic_tension = .2
speed = 600
[z_tilt]
z_positions =
0,0
250,500
500,0
points =
20,10
250,440
480,10
horizontal_move_z = 20
retries = 10
retry_tolerance = 0.02
speed = 600
[extruder]
rotation_distance = 4.63
full_steps_per_rotation = 200
filament_diameter = 1.750
max_extrude_only_velocity = 60
max_extrude_only_distance = 200
nozzle_diameter = 0.4
heater_pin = toolboard_t0:PB13
sensor_type = PT1000
pullup_resistor = 2200
sensor_pin = toolboard_t0:PA3
min_extrude_temp = 170
min_temp = 0
max_temp = 350
pressure_advance = 0.03
step_pin = toolboard_t0:PD0
dir_pin = toolboard_t0:e_dir_pin
enable_pin = !toolboard_t0:PD2
microsteps = 64
control = pid
pid_kp = 35.089
pid_ki = 7.089
pid_kd = 43.423
[firmware_retraction]
retract_speed = 60
unretract_extra_length = 0
unretract_speed = 60
retract_length = 0.5
[extruder1]
rotation_distance = 4.63
full_steps_per_rotation = 200
filament_diameter = 1.750
max_extrude_only_velocity = 60
max_extrude_only_distance = 200
nozzle_diameter = 0.4
heater_pin = toolboard_t1:PB13
sensor_type = PT1000
pullup_resistor = 2200
sensor_pin = toolboard_t1:PA3
min_extrude_temp = 170
min_temp = 0
max_temp = 350
pressure_advance = 0.03
step_pin = toolboard_t1:PD0
dir_pin = toolboard_t1:e_dir_pin
enable_pin = !toolboard_t1:PD2
microsteps = 64
control = pid
pid_kp = 38.078
pid_ki = 12.088
pid_kd = 29.986
[resonance_tester]
accel_chip_x = adxl345 toolboard_t0
accel_chip_y = adxl345 toolboard_t0
probe_points =
250,250,20
[tmc2209 stepper_x]
stealthchop_threshold = 0
interpolate = False
uart_pin = PC4
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 dual_carriage]
stealthchop_threshold = 0
interpolate = False
uart_pin = PF2
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 stepper_y]
stealthchop_threshold = 0
interpolate = False
uart_pin = PD11
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 stepper_y1]
stealthchop_threshold = 0
interpolate = False
uart_pin = PC7
run_current = 1.3
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[stepper_y1]
step_pin = PG4
dir_pin = y1_dir_pin
enable_pin = !PA0
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 40
[tmc2209 stepper_z]
stealthchop_threshold = 0
interpolate = False
uart_pin = PE4
run_current = 1.6
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[tmc2209 stepper_z1]
stealthchop_threshold = 0
interpolate = False
uart_pin = PE1
run_current = 1.6
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[stepper_z1]
step_pin = PE2
dir_pin = !z1_dir_pin
enable_pin = !PD4
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 4
[tmc2209 stepper_z2]
stealthchop_threshold = 0
interpolate = False
uart_pin = PD3
run_current = 1.6
driver_tbl = 2
driver_toff = 3
driver_hend = 0
driver_hstrt = 6
sense_resistor = 0.11
[stepper_z2]
step_pin = PE6
dir_pin = !z2_dir_pin
enable_pin = !PE0
microsteps = 64
full_steps_per_rotation = 200
rotation_distance = 4
[tmc2209 extruder]
stealthchop_threshold = 0
interpolate = False
uart_pin = toolboard_t0:PA15
run_current = 0.707
driver_tbl = 0
driver_toff = 4
driver_hend = 6
driver_hstrt = 7
sense_resistor = 0.11
[tmc2209 extruder1]
stealthchop_threshold = 0
interpolate = False
uart_pin = toolboard_t1:PA15
run_current = 0.707
driver_tbl = 0
driver_toff = 4
driver_hend = 6
driver_hstrt = 7
sense_resistor = 0.11
[beacon]
serial = /dev/beacon
x_offset = 0
y_offset = 22.5
mesh_main_direction = x
mesh_runs = 1
speed = 15.
lift_speed = 80.
contact_max_hotend_temperature = 275
[delayed_gcode _BEACON_INIT]
initial_duration = 1
gcode =
_BEACON_SET_NOZZLE_TEMP_OFFSET RESET=True
{% set svv = printer.save_variables.variables %}
{% set nozzle_expansion_coefficient_multiplier = svv.nozzle_expansion_coefficient_multiplier|default(0)|float %}
{% if nozzle_expansion_coefficient_multiplier == 0 %}
{% if printer["gcode_macro RatOS"].beacon_contact_expansion_multiplier is not defined %}
{% set nozzle_expansion_coefficient_multiplier = 1.0 %}
{% else %}
{% set nozzle_expansion_coefficient_multiplier = printer["gcode_macro RatOS"].beacon_contact_expansion_multiplier|default(1.0)|float %}
{% endif %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_multiplier VALUE={nozzle_expansion_coefficient_multiplier}
{% endif %}
{% if printer["gcode_macro RatOS"].beacon_contact_expansion_multiplier is defined %}
CONSOLE_ECHO TITLE="Deprecated gcode variable" TYPE="warning" MSG={'"Please remove the variable beacon_contact_expansion_multiplier from your config file."'}
{% endif %}
[gcode_macro BEACON_RATOS_CALIBRATION]
gcode =
RATOS_ECHO MSG="Did you mean BEACON_RATOS_CALIBRATE?"
[gcode_macro BEACON_RATOS_CALIBRATE]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
BEACON_INITIAL_CALIBRATION _AUTOMATED=True
{% if beacon_contact_start_print_true_zero %}
BEACON_POKE_TEST _AUTOMATED=True
_BEACON_CHECK_POKE
{% if printer["dual_carriage"] is not defined %}
BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET _AUTOMATED=True
{% endif %}
{% endif %}
{% if chamber_temp > 0 %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp}
{% endif %}
BEACON_FINAL_CALIBRATION _AUTOMATED=True BED_TEMP={bed_temp} CHAMBER_TEMP={chamber_temp}
{% if beacon_contact_start_print_true_zero %}
BEACON_MEASURE_GANTRY_TWIST
_BEACON_MAYBE_SCAN_COMPENSATION
{% endif %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
{% if chamber_temp > 0 %}
_CHAMBER_HEATER_OFF
{% endif %}
{% if beacon_contact_start_print_true_zero %}
{% if printer["dual_carriage"] is not defined %}
_BEACON_ECHO_NOZZLE_TEMP_OFFSETS
{% endif %}
_BEACON_ECHO_POKE
{% endif %}
RATOS_ECHO MSG="Beacon calibration finished!"
_LED_BEACON_CALIBRATION_END
RATOS_ECHO MSG="Saving config and restarting klipper..."
SAVE_CONFIG
[gcode_macro BEACON_INITIAL_CALIBRATION]
gcode =
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed * 60 %}
MAYBE_HOME X=True Y=True
_LED_BEACON_CALIBRATION_START
G90
_MOVE_TO_SAFE_Z_HOME
BEACON_AUTO_CALIBRATE
_Z_HOP
RATOS_ECHO MSG="Initial beacon contact calibration finished!"
{% if not automated %}
_CONSOLE_SAVE_CONFIG
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro BEACON_FINAL_CALIBRATION]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set bed_heat_soak_time = printer["gcode_macro RatOS"].bed_heat_soak_time|default(0)|int %}
{% set z_hop_speed = printer.configfile.config.ratos_homing.z_hop_speed|float * 60 %}
_BEACON_HOME_AND_ABL
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp}
{% endif %}
_LED_BEACON_CALIBRATION_START
G90
G0 Z2 F{z_hop_speed}
RATOS_ECHO MSG="Waiting for calibration temperature..."
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=150
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp} MAXIMUM={(bed_temp + 5)}
TEMPERATURE_WAIT SENSOR={'extruder' if default_toolhead == 0 else 'extruder1'} MINIMUM=150 MAXIMUM=155
{% if bed_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking bed for {bed_heat_soak_time} seconds..."
G4 P{(bed_heat_soak_time * 1000)}
{% endif %}
_Z_HOP
BEACON_AUTO_CALIBRATE
{% if not automated %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
{% endif %}
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_OFF
{% endif %}
_Z_HOP
RATOS_ECHO MSG="Final beacon contact calibration finished!"
{% if not automated %}
_CONSOLE_SAVE_CONFIG
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro BEACON_POKE_TEST]
variable_poke_result_1 = -1
variable_poke_result_2 = -1
variable_poke_result_3 = -1
variable_poke_result_4 = -1
variable_poke_result_5 = -1
gcode =
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set z_hop_speed = printer.configfile.config.ratos_homing.z_hop_speed|float * 60 %}
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_1 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_2 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_3 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_4 VALUE=-1
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE=poke_result_5 VALUE=-1
_BEACON_HOME_AND_ABL
_LED_BEACON_CALIBRATION_START
G0 Z5 F{z_hop_speed}
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=1
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=2
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=3
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=4
_BEACON_PROBE_POKE
_BEACON_STORE_POKE I=5
_Z_HOP
RATOS_ECHO MSG="Beacon poke test finished!"
{% if not automated %}
_BEACON_ECHO_POKE
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro _BEACON_PROBE_POKE]
gcode =
{% set poke_bottom = printer["gcode_macro RatOS"].beacon_contact_poke_bottom_limit|default(-1)|float %}
BEACON_POKE speed=3 top=5 bottom={poke_bottom}
BEACON_QUERY
[gcode_macro _BEACON_STORE_POKE]
gcode =
{% set i = params.I|default(1)|int %}
{% set last_z = printer.beacon.last_poke_result|default(0)|float %}
{% if printer.beacon.last_poke_result|lower != "none" %}
{% if printer.beacon.last_poke_result.error == 0 %}
SET_GCODE_VARIABLE MACRO=BEACON_POKE_TEST VARIABLE={"poke_result_%s" % i} VALUE={printer.beacon.last_poke_result.latency}
{% endif %}
{% endif %}
[gcode_macro _BEACON_CHECK_POKE]
gcode =
{% set p1 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_1|int %}
{% set p2 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_2|int %}
{% set p3 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_3|int %}
{% set p4 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_4|int %}
{% set p5 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_5|int %}
{% if p1 == -1 or p2 == -1 or p3 == -1 or p4 == -1 or p5 == -1 %}
_LED_BEACON_CALIBRATION_ERROR
{ action_raise_error("Beacon poke test error!") }
{% endif %}
{% set avg = (p1 + p2 + p3 + p4 + p5) / 5 %}
{% if avg > 6 %}
_LED_BEACON_CALIBRATION_ERROR
{ action_raise_error("Beacon poke test failed!") }
{% endif %}
[gcode_macro _BEACON_ECHO_POKE]
gcode =
{% set p1 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_1|int %}
{% set p2 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_2|int %}
{% set p3 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_3|int %}
{% set p4 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_4|int %}
{% set p5 = printer["gcode_macro BEACON_POKE_TEST"].poke_result_5|int %}
{% set avg = (p1 + p2 + p3 + p4 + p5) / 5 %}
{% if avg <= 1 %}
{% set type = "success" %}
{% set note = "Extremely low noise, rarely achieved" %}
{% elif avg > 1 and avg <= 4 %}
{% set type = "info" %}
{% set note = "Excellent performance for a typical printer" %}
{% elif avg > 4 and avg <= 8 %}
{% set type = "warning" %}
{% set note = "Acceptable performance, machine may have considerable cyclic axis noise" %}
{% elif avg > 8 and avg <= 11 %}
{% set type = "alert" %}
{% set note = "Not ideal, may want to verify proper mounting or use thinner stackups" %}
{% elif avg > 11 %}
{% set type = "alert" %}
{% set note = "Reason for concern, present setup may be risky to continue with" %}
{% endif %}
CONSOLE_ECHO TITLE="Beacon poke test result:" TYPE={type} MSG={'"Average latency: %.2f_N_%s"' % (avg, note)}
[gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET]
variable_reference_z = 0.0
gcode =
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set test_margin = 30 %}
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set poke_bottom = printer["gcode_macro RatOS"].beacon_contact_poke_bottom_limit|default(-1)|float %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% if beacon_contact_start_print_true_zero %}
_BEACON_HOME_AND_ABL
_LED_BEACON_CALIBRATION_START
RATOS_ECHO PREFIX="BEACON" MSG="Nozzle temperature offset calibration..."
{% for i in range(10) %}
beacon_poke speed=3 top=5 bottom={poke_bottom}
{% endfor %}
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=250
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=150
_BEACON_PROBE_NOZZLE_TEMP_OFFSET TEMP=250
_BEACON_STORE_NOZZLE_TEMP_OFFSET TEMP=250
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
SET_HEATER_TEMPERATURE HEATER={"extruder" if default_toolhead == 0 else "extruder1"} TARGET=0
{% if not automated %}
_BEACON_ECHO_NOZZLE_TEMP_OFFSETS
{% endif %}
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
{% endif %}
[gcode_macro _BEACON_PROBE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set hotend_heat_soak_time = printer["gcode_macro RatOS"].hotend_heat_soak_time|default(0)|int %}
{% set svv = printer.save_variables.variables %}
{% set idex_zcontrolpoint = svv.idex_zcontrolpoint|default(150)|float %}
RATOS_ECHO PREFIX="BEACON" MSG="Waiting for nozzle to reach {temp}°C..."
SET_HEATER_TEMPERATURE HEATER={"extruder" if default_toolhead == 0 else "extruder1"} TARGET={temp}
TEMPERATURE_WAIT SENSOR={"extruder" if default_toolhead == 0 else "extruder1"} MINIMUM={temp} MAXIMUM={temp + 2}
{% if hotend_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking hotend for {hotend_heat_soak_time} seconds..."
G4 P{(hotend_heat_soak_time * 1000)}
{% endif %}
RATOS_ECHO PREFIX="BEACON" MSG="Probing with nozzle temperature {temp}°C..."
PROBE PROBE_METHOD=contact PROBE_SPEED=3 LIFT_SPEED=15 SAMPLES=5 SAMPLE_RETRACT_DIST=3 SAMPLES_TOLERANCE=0.005 SAMPLES_TOLERANCE_RETRIES=10 SAMPLES_RESULT=median
BEACON_QUERY
G0 Z5 F{z_speed}
[gcode_macro _BEACON_STORE_NOZZLE_TEMP_OFFSET]
gcode =
{% set temp = params.TEMP|int %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set svv = printer.save_variables.variables %}
{% set last_z = printer.beacon.last_z_result|default(0)|float %}
{% if temp == 150 %}
SET_GCODE_VARIABLE MACRO=BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET VARIABLE=reference_z VALUE={last_z}
{% else %}
{% set reference_z = printer["gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET"].reference_z|default(0)|float %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_t{default_toolhead} VALUE={(last_z - reference_z)}
{% endif %}
[gcode_macro _BEACON_ECHO_NOZZLE_TEMP_OFFSETS]
gcode =
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set svv = printer.save_variables.variables %}
{% if default_toolhead == 0 %}
CONSOLE_ECHO TYPE="info" MSG={'"T0 expansion coefficient %.6f"' % svv.nozzle_expansion_coefficient_t0}
{% else %}
CONSOLE_ECHO TYPE="info" MSG={'"T1 expansion coefficient %.6f"' % svv.nozzle_expansion_coefficient_t1}
{% endif %}
[gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET]
variable_runtime_temp = 0
gcode =
{% set toolhead = params.TOOLHEAD|default(0)|int %}
{% set reset = true if params.RESET|default(false)|lower == 'true' else false %}
{% set z_speed = printer["gcode_macro RatOS"].macro_z_speed|float * 60 %}
{% set beacon_contact_true_zero_temp = printer["gcode_macro RatOS"].beacon_contact_true_zero_temp|default(150)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% set svv = printer.save_variables.variables %}
{% if reset %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_applied_offset VALUE=0
{% else %}
{% if beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
{% set nozzle_expansion_coefficient_t0 = svv.nozzle_expansion_coefficient_t0|default(0)|float %}
{% if printer["dual_carriage"] is defined %}
{% set nozzle_expansion_coefficient_t1 = svv.nozzle_expansion_coefficient_t1|default(0)|float %}
{% endif %}
{% set nozzle_expansion_coefficient_multiplier = svv.nozzle_expansion_coefficient_multiplier|default(1.0)|float %}
{% set applied_offset = svv.nozzle_expansion_applied_offset|default(0)|float %}
{% set temp = printer['extruder' if toolhead == 0 else 'extruder1'].target|float %}
{% set temp_offset = temp - beacon_contact_true_zero_temp %}
{% set expansion_coefficient = nozzle_expansion_coefficient_t0 if toolhead == 0 else nozzle_expansion_coefficient_t1 %}
{% set expansion_offset = nozzle_expansion_coefficient_multiplier * (temp_offset * (expansion_coefficient / 100)) %}
{% set new_offset = ((-applied_offset) + expansion_offset) %}
SET_GCODE_OFFSET Z_ADJUST={new_offset} MOVE=1 SPEED={z_speed}
SAVE_VARIABLE VARIABLE=nozzle_expansion_applied_offset VALUE={expansion_offset}
SET_GCODE_VARIABLE MACRO=_BEACON_SET_NOZZLE_TEMP_OFFSET VARIABLE=runtime_temp VALUE={temp}
RATOS_ECHO PREFIX="BEACON" MSG={'"Nozzle expansion offset of %.6fmm applied to T%s"' % (expansion_offset, toolhead)}
DEBUG_ECHO PREFIX="_BEACON_SET_NOZZLE_TEMP_OFFSET" MSG="multiplier: {nozzle_expansion_coefficient_multiplier}, coefficient: {expansion_coefficient}, temp_offset: {temp_offset}, expansion_offset: {expansion_offset}, applied_offset: {applied_offset}, new_offset: {new_offset}"
{% endif %}
{% endif %}
[gcode_macro BEACON_MEASURE_GANTRY_TWIST]
variable_needs_compensation = False
variable_reference_z = 0.0
variable_front = 0.0
variable_front_left = 0.0
variable_front_right = 0.0
variable_back = 0.0
variable_back_left = 0.0
variable_back_right = 0.0
variable_right = 0.0
variable_left = 0.0
variable_margin_x = 40
variable_margin_y = 40
gcode =
{% set speed = printer["gcode_macro RatOS"].macro_travel_speed|float * 60 %}
{% set printable_x_max = printer["gcode_macro RatOS"].printable_x_max|float %}
{% set printable_y_max = printer["gcode_macro RatOS"].printable_y_max|float %}
{% set safe_home_x = printer["gcode_macro RatOS"].safe_home_x %}
{% if safe_home_x is not defined or safe_home_x|lower == 'middle' %}
{% set safe_home_x = printable_x_max / 2 %}
{% endif %}
{% set safe_home_y = printer["gcode_macro RatOS"].safe_home_y %}
{% if safe_home_y is not defined or safe_home_y|lower == 'middle' %}
{% set safe_home_y = printable_y_max / 2 %}
{% endif %}
{% set poke_bottom = printer["gcode_macro RatOS"].beacon_contact_poke_bottom_limit|default(-1)|float %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% if beacon_contact_start_print_true_zero %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=False
_BEACON_HOME_AND_ABL
_LED_BEACON_CALIBRATION_START
RATOS_ECHO PREFIX="BEACON" MSG="Measure gantry twist..."
{% for i in range(10) %}
beacon_poke speed=3 top=5 bottom={poke_bottom}
{% endfor %}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="center"
G0 X{margin_x} Y{margin_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="front_left"
G0 X{safe_home_x} Y{margin_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="front"
G0 X{(printable_x_max - margin_x)} Y{margin_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="front_right"
G0 X{(printable_x_max - margin_x)} Y{safe_home_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="right"
G0 X{(printable_x_max - margin_x)} Y{(printable_y_max - margin_y)} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="back_right"
G0 X{safe_home_x} Y{(printable_y_max - margin_y)} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="back"
G0 X{margin_x} Y{(printable_y_max - margin_y)} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="back_left"
G0 X{margin_x} Y{safe_home_y} F{speed}
_BEACON_PROBE_GANTRY_TWIST
_BEACON_STORE_GANTRY_TWIST LOCATION="left"
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
_BEACON_ECHO_GANTRY_TWIST
_LED_BEACON_CALIBRATION_END
{% endif %}
[gcode_macro _BEACON_PROBE_GANTRY_TWIST]
gcode =
RATOS_ECHO PREFIX="BEACON" MSG="Probing..."
BEACON_OFFSET_COMPARE
BEACON_QUERY
[gcode_macro _BEACON_STORE_GANTRY_TWIST]
gcode =
{% set location = params.LOCATION|lower %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set last_z = printer.beacon.last_offset_result["delta"]|default(0)|float %}
{% if location == "center" %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=reference_z VALUE={last_z}
{% else %}
{% set reference_z = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].reference_z|default(0)|float %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE={location} VALUE={(last_z - reference_z)}
{% endif %}
[gcode_macro _BEACON_ECHO_GANTRY_TWIST]
gcode =
{% set reference_z = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].reference_z|default(0)|float * 1000 %}
{% set front_left = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].front_left|default(0)|float * 1000 %}
{% set front = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].front|default(0)|float * 1000 %}
{% set front_right = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].front_right|default(0)|float * 1000 %}
{% set right = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].right|default(0)|float * 1000 %}
{% set back_right = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].back_right|default(0)|float * 1000 %}
{% set back = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].back|default(0)|float * 1000 %}
{% set back_left = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].back_left|default(0)|float * 1000 %}
{% set left = printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].left|default(0)|float * 1000 %}
{% set line_1 = "Front left: %.6fμm" % (front_left) %}
{% set line_2 = "Front center: %.6fμm" % (front) %}
{% set line_3 = "Front right: %.6fμm" % (front_right) %}
{% set line_4 = "Left center: %.6fμm" % (left) %}
{% set line_5 = "Right center: %.6fμm" % (right) %}
{% set line_6 = "Back left: %.6fμm" % (back_left) %}
{% set line_7 = "Back center: %.6fμm" % (back) %}
{% set line_8 = "Back right: %.6fμm" % (back_right) %}
{% set max_value = [(front_left|abs), (front|abs), (front_right|abs), (left|abs), (right|abs), (back_left|abs), (back|abs), (back_right|abs)]|max %}
{% if max_value <= 50 %}
{% set type = "success" %}
{% set recommendation = "Very low gantry twist: %.6fμm._N_No beacon scan compensation needed." % max_value %}
{% elif max_value > 50 and max_value <= 100 %}
{% set type = "info" %}
{% set recommendation = "Low gantry twist: %.6fμm._N_You may experience first layer inconsistensies, consider beacon scan compensation." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% elif max_value > 100 and max_value <= 150 %}
{% set type = "warning" %}
{% set recommendation = "High gantry twist: %.6fμm._N_High chance of first layer problems, beacon scan compensation is highly encouraged." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% elif max_value > 150 and max_value <= 200 %}
{% set type = "alert" %}
{% set recommendation = "Very High gantry twist: %.6fμm._N_You will encounter first layer problems on large prints unless you activate beacon scan compensation." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% elif max_value > 200 %}
{% set type = "alert" %}
{% set recommendation = "Extremely high gantry twist: %.6fμm._N_You have significant scan/contact inconsistency which is indicative of mechanical problems, please investigate before resorting to software compensation." % max_value %}
SET_GCODE_VARIABLE MACRO=BEACON_MEASURE_GANTRY_TWIST VARIABLE=needs_compensation VALUE=True
{% endif %}
CONSOLE_ECHO TITLE="Gantry twist relative to the center" TYPE={type} MSG={'"_N_%s_N__N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s_N_%s"' % (recommendation, line_1, line_2, line_3, line_4, line_5, line_6, line_7, line_8)}
[gcode_macro BEACON_CREATE_SCAN_COMPENSATION_MESH]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set profile = params.PROFILE|default("Contact")|string %}
{% set automated = true if params._AUTOMATED|default(false)|lower == 'true' else false %}
{% set default_toolhead = printer["gcode_macro RatOS"].default_toolhead|default(0)|int %}
{% set beacon_scan_compensation_enable = true if printer["gcode_macro RatOS"].beacon_scan_compensation_enable|default(false)|lower == 'true' else false %}
{% set probe_count = printer["gcode_macro RatOS"].beacon_scan_compensation_probe_count %}
{% set bed_heat_soak_time = printer["gcode_macro RatOS"].bed_heat_soak_time|default(0)|int %}
{% if not beacon_scan_compensation_enable %}
RATOS_ECHO MSG="Beacon scan compensation is disabled!"
{% else %}
MAYBE_HOME
_MOVE_TO_SAFE_Z_HOME
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
_LED_BEACON_CALIBRATION_START
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_ON CHAMBER_TEMP={chamber_temp}
{% endif %}
{% if not automated %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=150
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp}
RATOS_ECHO MSG="Please wait..."
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp} MAXIMUM={(bed_temp + 5)}
TEMPERATURE_WAIT SENSOR={'extruder' if default_toolhead == 0 else 'extruder1'} MINIMUM=150 MAXIMUM=155
{% endif %}
{% if not automated %}
{% if bed_heat_soak_time > 0 %}
RATOS_ECHO MSG="Heat soaking bed for {bed_heat_soak_time} seconds..."
G4 P{(bed_heat_soak_time * 1000)}
{% endif %}
{% endif %}
{% if printer.z_tilt is defined %}
RATOS_ECHO MSG="Adjusting Z tilt..."
Z_TILT_ADJUST
RATOS_ECHO MSG="Rehoming Z after Z tilt adjustment..."
{% endif %}
{% if printer.quad_gantry_level is defined %}
RATOS_ECHO MSG="Running quad gantry leveling..."
QUAD_GANTRY_LEVEL
RATOS_ECHO MSG="Rehoming Z after quad gantry leveling..."
{% endif %}
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES=2 SAMPLES_DROP=1 SAMPLES_TOLERANCE_RETRIES=10 PROBE_COUNT={probe_count[0]},{probe_count[1]} PROFILE={profile}
{% if not automated %}
SET_HEATER_TEMPERATURE HEATER={'extruder' if default_toolhead == 0 else 'extruder1'} TARGET=0
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
{% endif %}
{% if chamber_temp > 0 and not automated %}
_CHAMBER_HEATER_OFF
{% endif %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
{% if not automated %}
_LED_BEACON_CALIBRATION_END
{% endif %}
RATOS_ECHO MSG="Beacon scan compensation mesh created!"
{% if not automated %}
RATOS_ECHO MSG="Saving config and restarting klipper..."
SAVE_CONFIG
{% endif %}
{% endif %}
[gcode_macro _BEACON_APPLY_SCAN_COMPENSATION]
gcode =
{% set beacon_scan_compensation_profile = printer["gcode_macro RatOS"].beacon_scan_compensation_profile %}
{% set beacon_scan_compensation_enable = true if printer["gcode_macro RatOS"].beacon_scan_compensation_enable|default(false)|lower == 'true' else false %}
DEBUG_ECHO PREFIX="_BEACON_APPLY_SCAN_COMPENSATION" MSG="beacon_scan_compensation_profile {beacon_scan_compensation_profile}, beacon_scan_compensation_enable {beacon_scan_compensation_enable}"
{% if beacon_scan_compensation_enable %}
BEACON_APPLY_SCAN_COMPENSATION PROFILE={beacon_scan_compensation_profile}
{% endif %}
[gcode_macro _BEACON_MAYBE_SCAN_COMPENSATION]
gcode =
{% set bed_temp = params.BED_TEMP|default(85)|int %}
{% set chamber_temp = params.CHAMBER_TEMP|default(0)|int %}
{% set needs_scan_compensation = true if printer["gcode_macro BEACON_MEASURE_GANTRY_TWIST"].needs_compensation|default(false)|lower == 'true' else false %}
{% if needs_scan_compensation %}
BEACON_CREATE_SCAN_COMPENSATION_MESH _AUTOMATED=True BED_TEMP={bed_temp} CHAMBER_TEMP={chamber_temp}
{% endif %}
[gcode_macro _BEACON_HOME_AND_ABL]
gcode =
MAYBE_HOME X=True Y=True
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
{% set needs_rehoming = False %}
{% if printer.z_tilt is defined and not printer.z_tilt.applied %}
RATOS_ECHO MSG="Adjusting Z tilt..."
Z_TILT_ADJUST
RATOS_ECHO MSG="Rehoming Z after Z tilt adjustment..."
{% set needs_rehoming = True %}
{% endif %}
{% if printer.quad_gantry_level is defined and not printer.quad_gantry_level.applied %}
RATOS_ECHO MSG="Running quad gantry leveling..."
QUAD_GANTRY_LEVEL
RATOS_ECHO MSG="Rehoming Z after quad gantry leveling..."
{% set needs_rehoming = True %}
{% endif %}
_MOVE_TO_SAFE_Z_HOME Z_HOP=True
{% if needs_rehoming %}
BEACON_AUTO_CALIBRATE SKIP_MODEL_CREATION=1
{% endif %}
[gcode_macro _BEACON_SAVE_MULTIPLIER]
gcode =
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% set multiplier = printer["gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER"].runtime_multiplier|default(-1.0)|float %}
DEBUG_ECHO PREFIX="_BEACON_SAVE_MULTIPLIER" MSG="multiplier: {multiplier}, beacon_contact_start_print_true_zero: {beacon_contact_start_print_true_zero}, beacon_contact_expansion_compensation: {beacon_contact_expansion_compensation}"
{% if multiplier > 0 and beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
SAVE_VARIABLE VARIABLE=nozzle_expansion_coefficient_multiplier VALUE={multiplier}
SET_GCODE_VARIABLE MACRO=_BEACON_APPLY_RUNTIME_MULTIPLIER VARIABLE=runtime_multiplier VALUE=-1.0
CONSOLE_ECHO TITLE="Hotend thermal expansion compensation" TYPE="success" MSG={'"New value is: %.6f_N_The new multiplier value has been saved to the configuration."' % multiplier}
{% else %}
Z_OFFSET_APPLY_PROBE
{% endif %}
[gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER]
variable_runtime_multiplier = -1.0
gcode =
{% set toolhead = 0 %}
{% if printer["dual_carriage"] is defined %}
{% set idex_mode = printer["dual_carriage"].carriage_1|lower %}
{% set toolhead = 1 if idex_mode == 'primary' else 0 %}
{% endif %}
{% set beacon_contact_true_zero_temp = printer["gcode_macro RatOS"].beacon_contact_true_zero_temp|default(150)|int %}
{% set beacon_contact_start_print_true_zero = true if printer["gcode_macro RatOS"].beacon_contact_start_print_true_zero|default(false)|lower == 'true' else false %}
{% set beacon_contact_expansion_compensation = true if printer["gcode_macro RatOS"].beacon_contact_expansion_compensation|default(false)|lower == 'true' else false %}
{% set layer_number = printer["gcode_macro _ON_LAYER_CHANGE"].layer_number|default(0)|int %}
{% set is_printing_gcode = true if printer["gcode_macro START_PRINT"].is_printing_gcode|default(true)|lower == 'true' else false %}
{% if layer_number == 0 and is_printing_gcode %}
{% set link_url = "https://os.ratrig.com/docs/slicers" %}
{% set link_text = "RatOS Slicer Documentation" %}
{% set line_1 = '"Your slicer is not correctly reporting layer information. See the layer change custom g-code in the %s".' % (link_url, link_text) %}
CONSOLE_ECHO TITLE="Missing layer information" TYPE="warning" MSG={line_1}
{% endif %}
DEBUG_ECHO PREFIX="_BEACON_APPLY_RUNTIME_MULTIPLIER" MSG="layer_number: {layer_number}, is_printing_gcode: {is_printing_gcode}, beacon_contact_start_print_true_zero: {beacon_contact_start_print_true_zero}, beacon_contact_expansion_compensation: {beacon_contact_expansion_compensation}"
{% if layer_number == 1 and is_printing_gcode and printer.configfile.settings.beacon is defined and beacon_contact_start_print_true_zero and beacon_contact_expansion_compensation %}
{% set svv = printer.save_variables.variables %}
{% set nozzle_expansion_coefficient = svv.nozzle_expansion_coefficient_t0|default(0)|float %}
{% if toolhead == 1 %}
{% set nozzle_expansion_coefficient = svv.nozzle_expansion_coefficient_t1|default(0)|float %}
{% endif %}
{% set beacon_contact_expansion_multiplier = svv.nozzle_expansion_coefficient_multiplier|default(1.0)|float %}
{% set print_temp = printer["gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET"].runtime_temp|default(0)|int %}
{% if print_temp > 0 %}
{% set z_offset = printer.gcode_move.homing_origin.z|float %}
{% set temp_delta = print_temp - beacon_contact_true_zero_temp %}
{% set coefficient_per_degree = nozzle_expansion_coefficient / 100 %}
{% set z_offset_per_degree = z_offset / temp_delta %}
{% set new_multiplier = z_offset_per_degree / coefficient_per_degree %}
DEBUG_ECHO PREFIX="_BEACON_APPLY_RUNTIME_MULTIPLIER" MSG="print_temp: {print_temp}, z_offset: {z_offset}, temp_delta: {temp_delta}, nozzle_expansion_coefficient: {nozzle_expansion_coefficient}, coefficient_per_degree: {coefficient_per_degree}, z_offset_per_degree: {z_offset_per_degree}, old_multiplier: {beacon_contact_expansion_multiplier}, new_multiplier: {new_multiplier}"
SET_GCODE_VARIABLE MACRO=_BEACON_APPLY_RUNTIME_MULTIPLIER VARIABLE=runtime_multiplier VALUE={new_multiplier}
{% endif %}
{% endif %}
[fan_generic part_fan_t0]
pin = !toolboard_t0:PA0
cycle_time = 0.00004
[fan_generic part_fan_t1]
pin = !toolboard_t1:PA0
cycle_time = 0.00004
[heater_fan toolhead_cooling_fan_t1]
heater = extruder1
pin = toolboard_t1:PA1
[controller_fan controller_fan]
pin = PD12
[gcode_macro T0]
variable_join = 0
variable_remap = 0
variable_alert = ""
variable_filament_name = ""
variable_filament_type = ""
variable_filament_temp = 0
variable_runout_sensor = ""
variable_active = True
variable_color = "7bff33"
variable_hotend_type = "UHF"
variable_has_cht_nozzle = False
variable_cooling_position_to_nozzle_distance = 40
variable_tooolhead_sensor_to_extruder_gear_distance = 15
variable_extruder_gear_to_cooling_position_distance = 30
variable_filament_loading_nozzle_offset = -5
variable_filament_grabbing_length = 5
variable_filament_grabbing_speed = 1
variable_enable_insert_detection = True
variable_enable_runout_detection = True
variable_enable_clog_detection = True
variable_unload_after_runout = True
variable_purge_after_load = 0
variable_purge_before_unload = 0
variable_extruder_load_speed = 60
variable_filament_load_speed = 10
variable_standby = False
variable_temperature_offset = 0
variable_has_oozeguard = True
variable_has_front_arm_nozzle_wiper = False
variable_loading_position = -32.8
variable_parking_position = -57.8
variable_resume_after_insert = True
gcode =
{% set x = params.X|default(-1.0)|float %}
{% set y = params.Y|default(-1.0)|float %}
{% set z = params.Z|default(0.0)|float %}
{% set s = params.S|default(1)|int %}
{% if printer["gcode_macro _SELECT_TOOL"] is defined %}
_SELECT_TOOL T=0 X={x} Y={y} Z={z} TOOLSHIFT={s}
{% endif %}
[gcode_macro T1]
variable_join = 0
variable_remap = 0
variable_alert = ""
variable_filament_name = ""
variable_filament_type = ""
variable_filament_temp = 0
variable_runout_sensor = ""
variable_active = False
variable_color = "0ea5e9"
variable_hotend_type = "UHF"
variable_has_cht_nozzle = False
variable_cooling_position_to_nozzle_distance = 40
variable_tooolhead_sensor_to_extruder_gear_distance = 15
variable_extruder_gear_to_cooling_position_distance = 30
variable_filament_loading_nozzle_offset = -5
variable_filament_grabbing_length = 5
variable_filament_grabbing_speed = 1
variable_enable_insert_detection = True
variable_enable_runout_detection = True
variable_enable_clog_detection = True
variable_unload_after_runout = True
variable_purge_after_load = 0
variable_purge_before_unload = 0
variable_extruder_load_speed = 60
variable_filament_load_speed = 10
variable_standby = False
variable_temperature_offset = 0
variable_has_oozeguard = True
variable_has_front_arm_nozzle_wiper = False
variable_loading_position = 532.8
variable_parking_position = 557.8
variable_resume_after_insert = True
gcode =
{% set x = params.X|default(-1.0)|float %}
{% set y = params.Y|default(-1.0)|float %}
{% set z = params.Z|default(0.0)|float %}
{% set s = params.S|default(1)|int %}
{% if printer["gcode_macro _SELECT_TOOL"] is defined %}
_SELECT_TOOL T=1 X={x} Y={y} Z={z} TOOLSHIFT={s}
{% endif %}
[save_variables]
filename = /home/pi/printer_data/config/ratos-variables.cfg
[fan_generic filter]
enable_pin = PD15
pin = !PD14
[filament_switch_sensor toolhead_filament_sensor_t0]
pause_on_runout = False
event_delay = 0.1
switch_pin = ^toolboard_t0:PB4
runout_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT TOOLHEAD=0
insert_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT TOOLHEAD=0
[gcode_button toolhead_filament_sensor_button_t0]
pin = ^!toolboard_t0:PB3
release_gcode =
{% if (printer.print_stats.state == "printing") %}
_ON_TOOLHEAD_FILAMENT_SENSOR_CLOG TOOLHEAD=0
{% else %}
_ON_FILAMENT_SENSOR_BUTTON_PRESSED TOOLHEAD=0
{% endif %}
press_gcode =
[filament_switch_sensor toolhead_filament_sensor_t1]
pause_on_runout = False
event_delay = 0.1
switch_pin = ^toolboard_t1:PB4
runout_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT TOOLHEAD=1
insert_gcode =
_ON_TOOLHEAD_FILAMENT_SENSOR_INSERT TOOLHEAD=1
[gcode_button toolhead_filament_sensor_button_t1]
pin = ^!toolboard_t1:PB3
release_gcode =
{% if (printer.print_stats.state == "printing") %}
_ON_TOOLHEAD_FILAMENT_SENSOR_CLOG TOOLHEAD=1
{% else %}
_ON_FILAMENT_SENSOR_BUTTON_PRESSED TOOLHEAD=1
{% endif %}
press_gcode =
[z_offset_probe]
pin = ^PG10
z_offset = -7
y_offset = 0
x_offset = 37.5
speed = 10
samples = 3
sample_retract_dist = 5
lift_speed = 10.0
samples_result = median
samples_tolerance = 0.2
samples_tolerance_retries = 5
[neopixel vaoc_led]
pin = PB0
chain_count = 6
color_order = GRB
[heater_fan vaoc_fan]
pin = PD13
heater = heater_bed
fan_speed = 1.0
heater_temp = 50
[beacon model default]
model_coef = 2.1062824025598856,
2.4440316355411857,
-0.11501792732933275,
-1.7134441218325234,
1.1664890422715875,
4.711775301218424,
-0.9438437775287646,
-4.981046326282779,
0.3837479201244267,
1.9440880295599143
model_domain = 1.8805645480637524e-07,1.933142365247182e-07
model_range = 0.200000,5.000000
model_temp = 50.590932
model_offset = 0.00000
[bed_mesh Cold]
version = 1
points =
0.007461, 0.006491, 0.005192, 0.002288, -0.000172, -0.007086, -0.011766, -0.020290, -0.026805, -0.037284, -0.046471, -0.063436, -0.074860, -0.080044, -0.085584, -0.098211, -0.099182, -0.095773, -0.103354, -0.103764, -0.099523, -0.103356, -0.099306, -0.090156, -0.083630, -0.082877, -0.087211, -0.077348, -0.075667, -0.066477, -0.065983, -0.052116, -0.042148, -0.031557, -0.018692, -0.018666, -0.015670, -0.009495, -0.009319, -0.001786
-0.011093, -0.010261, -0.012553, -0.010602, -0.017295, -0.019234, -0.022414, -0.040239, -0.042238, -0.042323, -0.059761, -0.068641, -0.073941, -0.084499, -0.088548, -0.102924, -0.092054, -0.097796, -0.106238, -0.092444, -0.096233, -0.094358, -0.092674, -0.088806, -0.088972, -0.086485, -0.076726, -0.081300, -0.076172, -0.061118, -0.059095, -0.050281, -0.038548, -0.029141, -0.024920, -0.018511, -0.014435, -0.009368, -0.010340, -0.009909
-0.003389, -0.003860, -0.003322, -0.003001, -0.001339, -0.003508, -0.008299, -0.020213, -0.027418, -0.028917, -0.039062, -0.043289, -0.052778, -0.068082, -0.068617, -0.073038, -0.080173, -0.073216, -0.080775, -0.075226, -0.073524, -0.073717, -0.074593, -0.070483, -0.071152, -0.066784, -0.064871, -0.062478, -0.055959, -0.052535, -0.044347, -0.033246, -0.025673, -0.021386, -0.014717, -0.010495, -0.000039, -0.004199, -0.005111, -0.003218
-0.012887, -0.016755, -0.012392, -0.007399, -0.009303, -0.015398, -0.013368, -0.018153, -0.022464, -0.035289, -0.042047, -0.043213, -0.059080, -0.072421, -0.067691, -0.072995, -0.076154, -0.073258, -0.070752, -0.069687, -0.061777, -0.062859, -0.069905, -0.059192, -0.063456, -0.064114, -0.050951, -0.057722, -0.058706, -0.036685, -0.040694, -0.034892, -0.016690, -0.010731, -0.012241, -0.004924, -0.004794, -0.003284, 0.001678, -0.000764
-0.005850, -0.009761, -0.004126, -0.006039, -0.001221, 0.005177, 0.002667, -0.004411, -0.011135, -0.013174, -0.023336, -0.029162, -0.037250, -0.048709, -0.054204, -0.048757, -0.052283, -0.059633, -0.055566, -0.048279, -0.049530, -0.041566, -0.050142, -0.042075, -0.040332, -0.046552, -0.044011, -0.040484, -0.038016, -0.029232, -0.023105, -0.013624, -0.010695, -0.001022, 0.002515, 0.001151, -0.004062, 0.003327, 0.005098, 0.007616
-0.028550, -0.024713, -0.025268, -0.015150, -0.015975, -0.013043, -0.008213, -0.018484, -0.020144, -0.025550, -0.032620, -0.038956, -0.045758, -0.046805, -0.051060, -0.055238, -0.053872, -0.060909, -0.059798, -0.047191, -0.050187, -0.049243, -0.045741, -0.039774, -0.044261, -0.037582, -0.041374, -0.041971, -0.031386, -0.029345, -0.026317, -0.013958, -0.010042, -0.001184, -0.002099, 0.001264, -0.009442, -0.002109, 0.000052, -0.000136
-0.035384, -0.035889, -0.025341, -0.018312, -0.017454, -0.011853, -0.008406, -0.011146, -0.014979, -0.019569, -0.024981, -0.034315, -0.032212, -0.041561, -0.040392, -0.045440, -0.048152, -0.046438, -0.052237, -0.045517, -0.042658, -0.043353, -0.033978, -0.041298, -0.037106, -0.040904, -0.035743, -0.032246, -0.026219, -0.031455, -0.027496, -0.013852, -0.012577, -0.007372, -0.005998, -0.005007, -0.003608, -0.005967, -0.004773, -0.005944
-0.050980, -0.044608, -0.039030, -0.029514, -0.025902, -0.023617, -0.020997, -0.017717, -0.025112, -0.029723, -0.034422, -0.038550, -0.040339, -0.042743, -0.047551, -0.047558, -0.056111, -0.048126, -0.055932, -0.052151, -0.043877, -0.047448, -0.048700, -0.043149, -0.041480, -0.037945, -0.029757, -0.034228, -0.029037, -0.028080, -0.019158, -0.011801, -0.010686, -0.005284, -0.005548, -0.006481, -0.006208, -0.005687, -0.010728, -0.011470
-0.049116, -0.043654, -0.037612, -0.035818, -0.019475, -0.010439, -0.008593, -0.009175, -0.017334, -0.023155, -0.019752, -0.027308, -0.028795, -0.034464, -0.040580, -0.041585, -0.042624, -0.048116, -0.045452, -0.043846, -0.029855, -0.038602, -0.034649, -0.029742, -0.024593, -0.037371, -0.030295, -0.031254, -0.023611, -0.022250, -0.012550, -0.000173, -0.004609, 0.002161, 0.003571, 0.002607, 0.002178, -0.002660, -0.007581, -0.007131
-0.067151, -0.058166, -0.046867, -0.043516, -0.031029, -0.023278, -0.017088, -0.026482, -0.024091, -0.024304, -0.029253, -0.033591, -0.034120, -0.042630, -0.044865, -0.049353, -0.057098, -0.051133, -0.059092, -0.042189, -0.041862, -0.043956, -0.046308, -0.033369, -0.030698, -0.025098, -0.022897, -0.023863, -0.014079, -0.015089, -0.009541, 0.000476, -0.001451, 0.001290, 0.008222, 0.008740, -0.000305, 0.000207, -0.005974, -0.009586
-0.069453, -0.067938, -0.057222, -0.050630, -0.038809, -0.026024, -0.026908, -0.025339, -0.024257, -0.028552, -0.031574, -0.036503, -0.036797, -0.043281, -0.045684, -0.058041, -0.059394, -0.063247, -0.056970, -0.055336, -0.044071, -0.044529, -0.050298, -0.030168, -0.033910, -0.012865, -0.008743, -0.026404, -0.017730, -0.017063, -0.013294, -0.003863, -0.004586, -0.002535, 0.000433, -0.002340, -0.008791, -0.013220, -0.014469, -0.018005
-0.081865, -0.079047, -0.064087, -0.062608, -0.048682, -0.043946, -0.042808, -0.042529, -0.039890, -0.036762, -0.045187, -0.047741, -0.051609, -0.047454, -0.046618, -0.056751, -0.064289, -0.074933, -0.066690, -0.061184, -0.057354, -0.054361, -0.048441, -0.047569, -0.040889, -0.010532, -0.015785, -0.017734, -0.021160, -0.024276, -0.016874, -0.010406, -0.006235, 0.000081, -0.008309, -0.006930, -0.018744, -0.019937, -0.024714, -0.030763
-0.090586, -0.082825, -0.072250, -0.071390, -0.058562, -0.046965, -0.042078, -0.037232, -0.042595, -0.037628, -0.043896, -0.047174, -0.048479, -0.056180, -0.051281, -0.059496, -0.064632, -0.067490, -0.074141, -0.064931, -0.060665, -0.046346, -0.058632, -0.048615, -0.051671, -0.044364, -0.044704, -0.036041, -0.028474, -0.033769, -0.020789, -0.021275, -0.012239, -0.011524, -0.014643, -0.014733, -0.018715, -0.029179, -0.036356, -0.037451
-0.099093, -0.086451, -0.080688, -0.070008, -0.067741, -0.053085, -0.053858, -0.050214, -0.047560, -0.043933, -0.047681, -0.046555, -0.052740, -0.057237, -0.065301, -0.066711, -0.075815, -0.072663, -0.079542, -0.065932, -0.063245, -0.065190, -0.061073, -0.062358, -0.059847, -0.053207, -0.045515, -0.048729, -0.038510, -0.033677, -0.032470, -0.021355, -0.026149, -0.013973, -0.017327, -0.016228, -0.028331, -0.036835, -0.043638, -0.050726
-0.099641, -0.094105, -0.085295, -0.077094, -0.064061, -0.055249, -0.045943, -0.043391, -0.042239, -0.039437, -0.038856, -0.034971, -0.044575, -0.048620, -0.059969, -0.061657, -0.060767, -0.076333, -0.065058, -0.064556, -0.062435, -0.059683, -0.065672, -0.064350, -0.060339, -0.045875, -0.049808, -0.041942, -0.036188, -0.031011, -0.025105, -0.018745, -0.021626, -0.013410, -0.016936, -0.025134, -0.022305, -0.031806, -0.038367, -0.046328
-0.113051, -0.107214, -0.092765, -0.086082, -0.076537, -0.070464, -0.063431, -0.058591, -0.051375, -0.045613, -0.049740, -0.057974, -0.053107, -0.054692, -0.067394, -0.062397, -0.073739, -0.071721, -0.070093, -0.068942, -0.063772, -0.069700, -0.068565, -0.075579, -0.060336, -0.063560, -0.051949, -0.042588, -0.045368, -0.031419, -0.038438, -0.032251, -0.030670, -0.033164, -0.033791, -0.032798, -0.039942, -0.041520, -0.052742, -0.064388
-0.113876, -0.106956, -0.099121, -0.094437, -0.082831, -0.066057, -0.062400, -0.047628, -0.048261, -0.049584, -0.044111, -0.058087, -0.049896, -0.058538, -0.055750, -0.063271, -0.061490, -0.067420, -0.059644, -0.054325, -0.057791, -0.057689, -0.066135, -0.056582, -0.056311, -0.058584, -0.057156, -0.049757, -0.048736, -0.038708, -0.041747, -0.040347, -0.039855, -0.042357, -0.040912, -0.043044, -0.054176, -0.053957, -0.062565, -0.078215
-0.109514, -0.106595, -0.100554, -0.089052, -0.086658, -0.076262, -0.065950, -0.062395, -0.059317, -0.049165, -0.051989, -0.057630, -0.057496, -0.047297, -0.060486, -0.054516, -0.059486, -0.054829, -0.051633, -0.054308, -0.049024, -0.056615, -0.049454, -0.050162, -0.044351, -0.061416, -0.054935, -0.051541, -0.043863, -0.043595, -0.039897, -0.042373, -0.035860, -0.042810, -0.047129, -0.042985, -0.055748, -0.062666, -0.068284, -0.082402
-0.116946, -0.107033, -0.099979, -0.091125, -0.085952, -0.072485, -0.058323, -0.052601, -0.044486, -0.038936, -0.036686, -0.037996, -0.040875, -0.043305, -0.049550, -0.061271, -0.054167, -0.058420, -0.051977, -0.048508, -0.047408, -0.043033, -0.053943, -0.049205, -0.052995, -0.059896, -0.057723, -0.043071, -0.040139, -0.041168, -0.033809, -0.043846, -0.042841, -0.042260, -0.048455, -0.046352, -0.059793, -0.061222, -0.068764, -0.078559
-0.123952, -0.117574, -0.106560, -0.094060, -0.090078, -0.078365, -0.071567, -0.059140, -0.051745, -0.043973, -0.043913, -0.043506, -0.040840, -0.054097, -0.060135, -0.063143, -0.065846, -0.062285, -0.065811, -0.053948, -0.052734, -0.050152, -0.057142, -0.059078, -0.057912, -0.064690, -0.067000, -0.049705, -0.054287, -0.053141, -0.059994, -0.055272, -0.060892, -0.058114, -0.066990, -0.065287, -0.074087, -0.081801, -0.084607, -0.092346
-0.145252, -0.127528, -0.118129, -0.107939, -0.101566, -0.088548, -0.066458, -0.059879, -0.059273, -0.049366, -0.042391, -0.047825, -0.043862, -0.048813, -0.059956, -0.062835, -0.063355, -0.053670, -0.064332, -0.052742, -0.056074, -0.058202, -0.056733, -0.064417, -0.070048, -0.059847, -0.063711, -0.061877, -0.063194, -0.060533, -0.062232, -0.064046, -0.072401, -0.068244, -0.082728, -0.081161, -0.091080, -0.096379, -0.099250, -0.104111
-0.146104, -0.139439, -0.126890, -0.111477, -0.108589, -0.095601, -0.084177, -0.076561, -0.069033, -0.060681, -0.064760, -0.065881, -0.060704, -0.066369, -0.069432, -0.076138, -0.071936, -0.069662, -0.070249, -0.064258, -0.068117, -0.054851, -0.067486, -0.065458, -0.072534, -0.073013, -0.071548, -0.072092, -0.068437, -0.074366, -0.069868, -0.084766, -0.080798, -0.086920, -0.090441, -0.091288, -0.103200, -0.110727, -0.117322, -0.123474
-0.158113, -0.148510, -0.130854, -0.129626, -0.113300, -0.101278, -0.087840, -0.076572, -0.071674, -0.061126, -0.059286, -0.059463, -0.061702, -0.061785, -0.067435, -0.068757, -0.066612, -0.060357, -0.067586, -0.060868, -0.062672, -0.068102, -0.060063, -0.061783, -0.070543, -0.060635, -0.061896, -0.061679, -0.077386, -0.071617, -0.077014, -0.077073, -0.077332, -0.084728, -0.090223, -0.093945, -0.104093, -0.110649, -0.122481, -0.130671
-0.153130, -0.147414, -0.137351, -0.125914, -0.114131, -0.105346, -0.087110, -0.078560, -0.076204, -0.069521, -0.062025, -0.064195, -0.064100, -0.066501, -0.079651, -0.078018, -0.074770, -0.068412, -0.069449, -0.060898, -0.063221, -0.061121, -0.063030, -0.067482, -0.066092, -0.062936, -0.057775, -0.069210, -0.073608, -0.069601, -0.081003, -0.070983, -0.088108, -0.083595, -0.094317, -0.096298, -0.106665, -0.109074, -0.125099, -0.130320
-0.156512, -0.150687, -0.137917, -0.134894, -0.118530, -0.105592, -0.086920, -0.084070, -0.070715, -0.068631, -0.061791, -0.062648, -0.054265, -0.056313, -0.055133, -0.064266, -0.061645, -0.063987, -0.064921, -0.060550, -0.068281, -0.064492, -0.068327, -0.074693, -0.068622, -0.071623, -0.068684, -0.069768, -0.073370, -0.075951, -0.071333, -0.074399, -0.074590, -0.077277, -0.087007, -0.095356, -0.104096, -0.110605, -0.122144, -0.131191
-0.151620, -0.145713, -0.133514, -0.120998, -0.118414, -0.102646, -0.091663, -0.081373, -0.072109, -0.070336, -0.062524, -0.051313, -0.052630, -0.054881, -0.065756, -0.064140, -0.076119, -0.071690, -0.071927, -0.073940, -0.070887, -0.071116, -0.076969, -0.077964, -0.064431, -0.073525, -0.060225, -0.075398, -0.063926, -0.073347, -0.077485, -0.077899, -0.082430, -0.079977, -0.086461, -0.096800, -0.105783, -0.110702, -0.126253, -0.132748
-0.152257, -0.147336, -0.132013, -0.123943, -0.114379, -0.097983, -0.087681, -0.080620, -0.064897, -0.062599, -0.057646, -0.057481, -0.057430, -0.053873, -0.071415, -0.061969, -0.068720, -0.069175, -0.069521, -0.068544, -0.069835, -0.062461, -0.060814, -0.071821, -0.062577, -0.064051, -0.063744, -0.066651, -0.069733, -0.066233, -0.069618, -0.071764, -0.072299, -0.073811, -0.079471, -0.095054, -0.097172, -0.109348, -0.118041, -0.130249
-0.157120, -0.143488, -0.127398, -0.123470, -0.109521, -0.097895, -0.087209, -0.078468, -0.068097, -0.063565, -0.062131, -0.071589, -0.068384, -0.062772, -0.069223, -0.060846, -0.065889, -0.062133, -0.066074, -0.061891, -0.048583, -0.064231, -0.057388, -0.068258, -0.062502, -0.060061, -0.066206, -0.068455, -0.072766, -0.072512, -0.073715, -0.065142, -0.070177, -0.073215, -0.088960, -0.089510, -0.106414, -0.115035, -0.120642, -0.133094
-0.150736, -0.142981, -0.134078, -0.120948, -0.111849, -0.097508, -0.081954, -0.071985, -0.059746, -0.055637, -0.059236, -0.062495, -0.064679, -0.057357, -0.052917, -0.062832, -0.052532, -0.058148, -0.054486, -0.048343, -0.053121, -0.050049, -0.058324, -0.057173, -0.054778, -0.057764, -0.056237, -0.059572, -0.069099, -0.069175, -0.068283, -0.069737, -0.066182, -0.065674, -0.083632, -0.086952, -0.102895, -0.115251, -0.120516, -0.131372
-0.157143, -0.146424, -0.131169, -0.113217, -0.102092, -0.092778, -0.080282, -0.080224, -0.061472, -0.057702, -0.056392, -0.065442, -0.063335, -0.056430, -0.063373, -0.059407, -0.062116, -0.050788, -0.054894, -0.050835, -0.052565, -0.047216, -0.046971, -0.054092, -0.044490, -0.056481, -0.050705, -0.058802, -0.064554, -0.069890, -0.069178, -0.068719, -0.078686, -0.078556, -0.085829, -0.094617, -0.111722, -0.120174, -0.135981, -0.144333
-0.152522, -0.138671, -0.122719, -0.115609, -0.099025, -0.089493, -0.081361, -0.069903, -0.060507, -0.051495, -0.046115, -0.051458, -0.052072, -0.046652, -0.053481, -0.045183, -0.047989, -0.043640, -0.042487, -0.042438, -0.043839, -0.039304, -0.041218, -0.032364, -0.036319, -0.038431, -0.042514, -0.052490, -0.057458, -0.062729, -0.060569, -0.066440, -0.066434, -0.071085, -0.083877, -0.096589, -0.106169, -0.114513, -0.127149, -0.140643
-0.153338, -0.137266, -0.125832, -0.109980, -0.096297, -0.088597, -0.072207, -0.066506, -0.070057, -0.049496, -0.049513, -0.052737, -0.043196, -0.049589, -0.046291, -0.045430, -0.041597, -0.040574, -0.028932, -0.033353, -0.027803, -0.027226, -0.030948, -0.027060, -0.033802, -0.035948, -0.044113, -0.050954, -0.059800, -0.062425, -0.064095, -0.065343, -0.078817, -0.085540, -0.091272, -0.103010, -0.111491, -0.118450, -0.138649, -0.146185
-0.165845, -0.148827, -0.128989, -0.119033, -0.108111, -0.091857, -0.078258, -0.068709, -0.061145, -0.051377, -0.043186, -0.046994, -0.036154, -0.038582, -0.036824, -0.033456, -0.035707, -0.026190, -0.021009, -0.021201, -0.018579, -0.013272, -0.023522, -0.019093, -0.020911, -0.031873, -0.028552, -0.044968, -0.052374, -0.054013, -0.064673, -0.071395, -0.063406, -0.080359, -0.090538, -0.093820, -0.107167, -0.120079, -0.127405, -0.139345
-0.171952, -0.160508, -0.143397, -0.131654, -0.111518, -0.091939, -0.082450, -0.072053, -0.062216, -0.054462, -0.050708, -0.042595, -0.046336, -0.034402, -0.039011, -0.035884, -0.018562, -0.021760, -0.022790, -0.012298, -0.014539, -0.012572, -0.017195, -0.019879, -0.021994, -0.032785, -0.042250, -0.047098, -0.061002, -0.065371, -0.068197, -0.074629, -0.080501, -0.085994, -0.101473, -0.103640, -0.110778, -0.129088, -0.144282, -0.152210
-0.176097, -0.158858, -0.147142, -0.136299, -0.118650, -0.093834, -0.082677, -0.072558, -0.053090, -0.045210, -0.043162, -0.042916, -0.032116, -0.026719, -0.028635, -0.024435, -0.020613, -0.013944, -0.015142, -0.005098, -0.006687, -0.005589, -0.012400, -0.010552, -0.016974, -0.019076, -0.030411, -0.040211, -0.054002, -0.056807, -0.059066, -0.071173, -0.074028, -0.079411, -0.093869, -0.096911, -0.105279, -0.119547, -0.133183, -0.146886
-0.170370, -0.160704, -0.140063, -0.121426, -0.106232, -0.090447, -0.072787, -0.067127, -0.058339, -0.045884, -0.041345, -0.034878, -0.036057, -0.027776, -0.028867, -0.021094, -0.013394, -0.018285, -0.004606, -0.001940, 0.002735, -0.000849, -0.012592, -0.007442, -0.020905, -0.021837, -0.027961, -0.043853, -0.045423, -0.052784, -0.069788, -0.063952, -0.075687, -0.090528, -0.091471, -0.097783, -0.120558, -0.125469, -0.136976, -0.147275
-0.177818, -0.162813, -0.139485, -0.125422, -0.108649, -0.088932, -0.080966, -0.060673, -0.056803, -0.047998, -0.035275, -0.031405, -0.022916, -0.017648, -0.017072, -0.010941, -0.006310, -0.005895, -0.004187, -0.002651, -0.002010, 0.004917, 0.001060, -0.002042, -0.003196, -0.017465, -0.019108, -0.036243, -0.041296, -0.053219, -0.056998, -0.063940, -0.067003, -0.077935, -0.088118, -0.094794, -0.102858, -0.113148, -0.130876, -0.142665
-0.186066, -0.172567, -0.152547, -0.132619, -0.115033, -0.098434, -0.081389, -0.074243, -0.062804, -0.051491, -0.047331, -0.036343, -0.025746, -0.026807, -0.014467, -0.010036, -0.005335, -0.003951, -0.008903, 0.001363, 0.007666, -0.000878, -0.000267, -0.000998, -0.012807, -0.017154, -0.030718, -0.041063, -0.049902, -0.062423, -0.071330, -0.068601, -0.075463, -0.082828, -0.097246, -0.114564, -0.126037, -0.128842, -0.148921, -0.151322
-0.184199, -0.169036, -0.150380, -0.136076, -0.122619, -0.099100, -0.084254, -0.070777, -0.060864, -0.051711, -0.038204, -0.029469, -0.016319, -0.013196, 0.003898, 0.002159, 0.002607, 0.008675, 0.005635, 0.014450, 0.007436, 0.015024, 0.011524, 0.008567, 0.003378, -0.006371, -0.014263, -0.029627, -0.038925, -0.045820, -0.065516, -0.064098, -0.065819, -0.082093, -0.092620, -0.101046, -0.115087, -0.125473, -0.140456, -0.151829
-0.198905, -0.183204, -0.164462, -0.153856, -0.136070, -0.116021, -0.096896, -0.079541, -0.061229, -0.055899, -0.046070, -0.031554, -0.021725, -0.015311, -0.008550, 0.002239, 0.003107, 0.011018, 0.008957, 0.017891, 0.024235, 0.015171, 0.016806, 0.008372, 0.004135, -0.007913, -0.020961, -0.035200, -0.049838, -0.054874, -0.067166, -0.081205, -0.085378, -0.089679, -0.108375, -0.115204, -0.128235, -0.139843, -0.158895, -0.167550
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh 60C]
version = 1
points =
0.011660, 0.016558, 0.012896, 0.011014, 0.009018, 0.002663, -0.004346, -0.009581, -0.016163, -0.029804, -0.037334, -0.054377, -0.064931, -0.071072, -0.076257, -0.088377, -0.089148, -0.087404, -0.097071, -0.095374, -0.088806, -0.095827, -0.089353, -0.083897, -0.077086, -0.077310, -0.082311, -0.069570, -0.066952, -0.064415, -0.060938, -0.044735, -0.041391, -0.028566, -0.014345, -0.016367, -0.013320, -0.009358, -0.009477, -0.003416
-0.000898, -0.000952, -0.000997, -0.000924, -0.007150, -0.006269, -0.009627, -0.026651, -0.028413, -0.029692, -0.046022, -0.057993, -0.063900, -0.072464, -0.078204, -0.089596, -0.077825, -0.087856, -0.096497, -0.080970, -0.082192, -0.087638, -0.086041, -0.074646, -0.078648, -0.077258, -0.066126, -0.073781, -0.066759, -0.050961, -0.056815, -0.046372, -0.033275, -0.023454, -0.021033, -0.016632, -0.011314, -0.009384, -0.007031, -0.010759
0.004656, 0.005213, 0.005310, 0.007170, 0.007560, 0.007407, 0.003858, -0.008796, -0.014174, -0.016391, -0.026065, -0.031080, -0.040074, -0.054139, -0.058130, -0.059315, -0.069099, -0.062492, -0.068769, -0.063581, -0.062689, -0.060531, -0.064365, -0.059828, -0.058663, -0.056960, -0.052580, -0.051334, -0.047629, -0.044706, -0.037173, -0.025516, -0.022967, -0.012419, -0.007982, -0.006190, -0.000152, -0.002659, -0.004589, -0.004034
-0.002577, -0.005133, 0.001163, 0.006131, 0.003919, -0.004199, 0.003455, -0.005438, -0.011174, -0.017726, -0.026883, -0.030408, -0.049238, -0.054720, -0.052463, -0.060611, -0.064633, -0.059372, -0.058313, -0.056435, -0.051116, -0.053621, -0.055623, -0.047763, -0.052926, -0.049406, -0.038757, -0.047533, -0.046927, -0.027344, -0.033179, -0.026152, -0.007796, -0.006533, -0.006439, -0.001753, -0.002273, -0.001246, 0.003690, 0.000391
0.004659, 0.001917, 0.004545, 0.004529, 0.009741, 0.014995, 0.014337, 0.009165, -0.000392, -0.001627, -0.009785, -0.018280, -0.026336, -0.036117, -0.040493, -0.036770, -0.039492, -0.049966, -0.044248, -0.040041, -0.039794, -0.034282, -0.040103, -0.030903, -0.031845, -0.036479, -0.030446, -0.028990, -0.035674, -0.024437, -0.016294, -0.013676, -0.006996, 0.004243, 0.005256, -0.000210, -0.001328, 0.002315, 0.002424, 0.001030
-0.019416, -0.016373, -0.014256, -0.006875, -0.005967, -0.001450, 0.004139, -0.007106, -0.004416, -0.011457, -0.020487, -0.030854, -0.031068, -0.036004, -0.039018, -0.043669, -0.041501, -0.051376, -0.046905, -0.037183, -0.038752, -0.042280, -0.037993, -0.029197, -0.038275, -0.027963, -0.030666, -0.033323, -0.018088, -0.019944, -0.014415, -0.005747, -0.003578, 0.002898, 0.005140, 0.005572, 0.002072, -0.002963, 0.002566, -0.002837
-0.027082, -0.025445, -0.013858, -0.008426, -0.004460, -0.001300, 0.003905, 0.005515, -0.004427, -0.008928, -0.010829, -0.020737, -0.021754, -0.024533, -0.030133, -0.032067, -0.032735, -0.038588, -0.036517, -0.033215, -0.033359, -0.027226, -0.026118, -0.025963, -0.025025, -0.026312, -0.020615, -0.028443, -0.021613, -0.020238, -0.015854, -0.007076, -0.003322, 0.000982, -0.000084, 0.001491, -0.000934, -0.003172, -0.004223, -0.005493
-0.038903, -0.034021, -0.026959, -0.017254, -0.010288, -0.011037, -0.006942, -0.002087, -0.012740, -0.013960, -0.018769, -0.024569, -0.021636, -0.029747, -0.031856, -0.035233, -0.040907, -0.036101, -0.041364, -0.039607, -0.027757, -0.033566, -0.035108, -0.027205, -0.030257, -0.025789, -0.019555, -0.022651, -0.018084, -0.021355, -0.009206, -0.003503, 0.000641, 0.002910, 0.005099, 0.000630, 0.000828, -0.004374, -0.005989, -0.011619
-0.038440, -0.034397, -0.025759, -0.021780, -0.007993, 0.001317, 0.005935, 0.004422, -0.001761, -0.006689, -0.007542, -0.010880, -0.015946, -0.018777, -0.022121, -0.027545, -0.029435, -0.033325, -0.030811, -0.030160, -0.018186, -0.023633, -0.021819, -0.015320, -0.010883, -0.021207, -0.019740, -0.013151, -0.018489, -0.013470, 0.000997, 0.004406, 0.005600, 0.012017, 0.009169, 0.009441, 0.008155, -0.000338, -0.005758, -0.005792
-0.054141, -0.042896, -0.031369, -0.029023, -0.016364, -0.005891, -0.004314, -0.008455, -0.004525, -0.011128, -0.014231, -0.016639, -0.018990, -0.027254, -0.026694, -0.033488, -0.042823, -0.035701, -0.044838, -0.027143, -0.023924, -0.031228, -0.032610, -0.015639, -0.019858, -0.012741, -0.007706, -0.014082, 0.000892, -0.004440, 0.003625, 0.011716, 0.008077, 0.010665, 0.018123, 0.015679, 0.007360, 0.005351, -0.002447, -0.006640
-0.058664, -0.055738, -0.041441, -0.037060, -0.027007, -0.013223, -0.014085, -0.009420, -0.009078, -0.014199, -0.017584, -0.022571, -0.024659, -0.026539, -0.031502, -0.042806, -0.046845, -0.049400, -0.043647, -0.040642, -0.031485, -0.033571, -0.034868, -0.020135, -0.021866, -0.012326, 0.001404, -0.013729, -0.009557, -0.003627, -0.005678, 0.000345, 0.006683, 0.001596, 0.006150, 0.003772, -0.002681, -0.009621, -0.012513, -0.016152
-0.073250, -0.067929, -0.051451, -0.051121, -0.037106, -0.029615, -0.028698, -0.028802, -0.024686, -0.022098, -0.033054, -0.029936, -0.037305, -0.035268, -0.030765, -0.038927, -0.057054, -0.057488, -0.053391, -0.048247, -0.042872, -0.043053, -0.033748, -0.036898, -0.026125, -0.001827, -0.002222, -0.006490, -0.009688, -0.012879, -0.006698, -0.003286, 0.001075, 0.004349, -0.002126, -0.002827, -0.011080, -0.019360, -0.022758, -0.030766
-0.081758, -0.070514, -0.058030, -0.057232, -0.045584, -0.032552, -0.027400, -0.022475, -0.026899, -0.021579, -0.027928, -0.032701, -0.032266, -0.041035, -0.032869, -0.045248, -0.048924, -0.053264, -0.055180, -0.050585, -0.044016, -0.030240, -0.046793, -0.031662, -0.039977, -0.038798, -0.020312, -0.029607, -0.011461, -0.019931, -0.007767, -0.008920, -0.004463, 0.000928, -0.002770, -0.010543, -0.013163, -0.022105, -0.027643, -0.030791
-0.084636, -0.072055, -0.066446, -0.056713, -0.049999, -0.036873, -0.036720, -0.031391, -0.031615, -0.026284, -0.029550, -0.029516, -0.033761, -0.041516, -0.046268, -0.048214, -0.056350, -0.055388, -0.060799, -0.048035, -0.047485, -0.048081, -0.047648, -0.045650, -0.042480, -0.037901, -0.030579, -0.032147, -0.019554, -0.016383, -0.019108, -0.008281, -0.013608, -0.005989, -0.005150, -0.010843, -0.023377, -0.032470, -0.037645, -0.048234
-0.087920, -0.079952, -0.071131, -0.063602, -0.051944, -0.038891, -0.029363, -0.024613, -0.025721, -0.020487, -0.020920, -0.019087, -0.025980, -0.031839, -0.041318, -0.042927, -0.046106, -0.055911, -0.051926, -0.047035, -0.044406, -0.044765, -0.050059, -0.051883, -0.043344, -0.033441, -0.033219, -0.026853, -0.022733, -0.018927, -0.016675, -0.007310, -0.008944, -0.003162, -0.010712, -0.016454, -0.015349, -0.024692, -0.033558, -0.043507
-0.101613, -0.094867, -0.079173, -0.072348, -0.061197, -0.056394, -0.046913, -0.042411, -0.035874, -0.030432, -0.033215, -0.041141, -0.039436, -0.039474, -0.052793, -0.046210, -0.058662, -0.054918, -0.054129, -0.056140, -0.047843, -0.056102, -0.051070, -0.061077, -0.045256, -0.050476, -0.036396, -0.030153, -0.033990, -0.020877, -0.028969, -0.022011, -0.021806, -0.024044, -0.023774, -0.026545, -0.032027, -0.033411, -0.049183, -0.062863
-0.102042, -0.092206, -0.087059, -0.080013, -0.068514, -0.052839, -0.046425, -0.032846, -0.032788, -0.033300, -0.026925, -0.041909, -0.031954, -0.043027, -0.037674, -0.046558, -0.045600, -0.051162, -0.045813, -0.039907, -0.040303, -0.043387, -0.044510, -0.035377, -0.043775, -0.042820, -0.045108, -0.039646, -0.032311, -0.027817, -0.030210, -0.030265, -0.029100, -0.030388, -0.033042, -0.035512, -0.047831, -0.045909, -0.054990, -0.075567
-0.098480, -0.094149, -0.083581, -0.075659, -0.069762, -0.060793, -0.050611, -0.042195, -0.038673, -0.027533, -0.032257, -0.039302, -0.035020, -0.033129, -0.036111, -0.035946, -0.039215, -0.038478, -0.032961, -0.033617, -0.034441, -0.035639, -0.033236, -0.033871, -0.029666, -0.044878, -0.041426, -0.036345, -0.032548, -0.028533, -0.025205, -0.032394, -0.025401, -0.034204, -0.034934, -0.037654, -0.048721, -0.060636, -0.065702, -0.080894
-0.107217, -0.096752, -0.088384, -0.076464, -0.067534, -0.056510, -0.040159, -0.035741, -0.027433, -0.019942, -0.017426, -0.017539, -0.021108, -0.023822, -0.030146, -0.039808, -0.034314, -0.035983, -0.034164, -0.027282, -0.026640, -0.028065, -0.033722, -0.031477, -0.036804, -0.040386, -0.041432, -0.026967, -0.026209, -0.025556, -0.020185, -0.031020, -0.027078, -0.032395, -0.038901, -0.037661, -0.051311, -0.055230, -0.064808, -0.073690
-0.109781, -0.102966, -0.091678, -0.078936, -0.072842, -0.061586, -0.054412, -0.040276, -0.032622, -0.022759, -0.022592, -0.021772, -0.022064, -0.031338, -0.037294, -0.043694, -0.045492, -0.039524, -0.044207, -0.032775, -0.033151, -0.030196, -0.039805, -0.038785, -0.040552, -0.047416, -0.048586, -0.033478, -0.038540, -0.037205, -0.045778, -0.042929, -0.046606, -0.045946, -0.053937, -0.056048, -0.066220, -0.077054, -0.079121, -0.088264
-0.130017, -0.113689, -0.103865, -0.094000, -0.084712, -0.071733, -0.049067, -0.040691, -0.037994, -0.029169, -0.024861, -0.028318, -0.023500, -0.028381, -0.037437, -0.039900, -0.040860, -0.036216, -0.040189, -0.039022, -0.030940, -0.044257, -0.033352, -0.049796, -0.046699, -0.043870, -0.047227, -0.044222, -0.048973, -0.043424, -0.049824, -0.053754, -0.057571, -0.059193, -0.070246, -0.072950, -0.083870, -0.089963, -0.095079, -0.100881
-0.136173, -0.127824, -0.112754, -0.097962, -0.091519, -0.078971, -0.065505, -0.057312, -0.047929, -0.042698, -0.044013, -0.045591, -0.042365, -0.046394, -0.052514, -0.056141, -0.052592, -0.049603, -0.049539, -0.044201, -0.046337, -0.042604, -0.052491, -0.048705, -0.054125, -0.053786, -0.056419, -0.057488, -0.054215, -0.060097, -0.055616, -0.069619, -0.068816, -0.079310, -0.080668, -0.081680, -0.096842, -0.104473, -0.110500, -0.119418
-0.148407, -0.137383, -0.117250, -0.112763, -0.098828, -0.084003, -0.068268, -0.058491, -0.050106, -0.043882, -0.041249, -0.038558, -0.042852, -0.039674, -0.049907, -0.052883, -0.043517, -0.042425, -0.044586, -0.045502, -0.042207, -0.048397, -0.043561, -0.047361, -0.050170, -0.048362, -0.046453, -0.052525, -0.064207, -0.055664, -0.065054, -0.061975, -0.068999, -0.074391, -0.077836, -0.085115, -0.096535, -0.103506, -0.117879, -0.124113
-0.142123, -0.133963, -0.125566, -0.109398, -0.098895, -0.087919, -0.071198, -0.062588, -0.059798, -0.050626, -0.043945, -0.044141, -0.039378, -0.044508, -0.055286, -0.052721, -0.051783, -0.042440, -0.046097, -0.040788, -0.046150, -0.046896, -0.047536, -0.050246, -0.049313, -0.052704, -0.045341, -0.056265, -0.061130, -0.056550, -0.068426, -0.061054, -0.077430, -0.073394, -0.082501, -0.087429, -0.098190, -0.105914, -0.121948, -0.130352
-0.148542, -0.140171, -0.125457, -0.123653, -0.104122, -0.087784, -0.069260, -0.064985, -0.048293, -0.048545, -0.042363, -0.040130, -0.034426, -0.031431, -0.036403, -0.040717, -0.040057, -0.042884, -0.041572, -0.047893, -0.041177, -0.050342, -0.045359, -0.052644, -0.051350, -0.048771, -0.049269, -0.049448, -0.049501, -0.054975, -0.051294, -0.057256, -0.062142, -0.060720, -0.076065, -0.085631, -0.091526, -0.098766, -0.115561, -0.126895
-0.142879, -0.136887, -0.122112, -0.109622, -0.102909, -0.083465, -0.075626, -0.060243, -0.051923, -0.048596, -0.041197, -0.032058, -0.031226, -0.035655, -0.043679, -0.047009, -0.049987, -0.051159, -0.052074, -0.049547, -0.051100, -0.052763, -0.054488, -0.057575, -0.046670, -0.051837, -0.045605, -0.055429, -0.047805, -0.056702, -0.061002, -0.065944, -0.071409, -0.070030, -0.076648, -0.086154, -0.098066, -0.109250, -0.123732, -0.134529
-0.145242, -0.137831, -0.117733, -0.112233, -0.101378, -0.083234, -0.070852, -0.061614, -0.046133, -0.043230, -0.034194, -0.036813, -0.035993, -0.035460, -0.049225, -0.041057, -0.046374, -0.047064, -0.048223, -0.048399, -0.044915, -0.044874, -0.048295, -0.047451, -0.044248, -0.048177, -0.042961, -0.053931, -0.053262, -0.050189, -0.055081, -0.054368, -0.057840, -0.064945, -0.069684, -0.084417, -0.091170, -0.101255, -0.110388, -0.125763
-0.141766, -0.131529, -0.113521, -0.104443, -0.092846, -0.081918, -0.072197, -0.058292, -0.048348, -0.042317, -0.038812, -0.046647, -0.042491, -0.040098, -0.045063, -0.037155, -0.043813, -0.040321, -0.040450, -0.040998, -0.031647, -0.037560, -0.036830, -0.047915, -0.040610, -0.044161, -0.043599, -0.051052, -0.053613, -0.053338, -0.057911, -0.053934, -0.061516, -0.064348, -0.075661, -0.082207, -0.097820, -0.111577, -0.117542, -0.130992
-0.143229, -0.134745, -0.120542, -0.108766, -0.095525, -0.081827, -0.066209, -0.051907, -0.041773, -0.039345, -0.038347, -0.042756, -0.045907, -0.036299, -0.035985, -0.038592, -0.031677, -0.035069, -0.036571, -0.031422, -0.030160, -0.030062, -0.036969, -0.039049, -0.038392, -0.040255, -0.041739, -0.043937, -0.054617, -0.054842, -0.057435, -0.054261, -0.052880, -0.062797, -0.068960, -0.080180, -0.097721, -0.105749, -0.117528, -0.130231
-0.142717, -0.132844, -0.118339, -0.099852, -0.087564, -0.074540, -0.060555, -0.063317, -0.042639, -0.036647, -0.036484, -0.044721, -0.043828, -0.034604, -0.041367, -0.039394, -0.040234, -0.032032, -0.034575, -0.029697, -0.030618, -0.027718, -0.027701, -0.034473, -0.026211, -0.038566, -0.033026, -0.042458, -0.048376, -0.054907, -0.056370, -0.056608, -0.063929, -0.066574, -0.076786, -0.087172, -0.105015, -0.118436, -0.130919, -0.143431
-0.142243, -0.127826, -0.108977, -0.102291, -0.084912, -0.075221, -0.064803, -0.054600, -0.042369, -0.031708, -0.027693, -0.033964, -0.034351, -0.028000, -0.033180, -0.021945, -0.030874, -0.025415, -0.025503, -0.019591, -0.023795, -0.021542, -0.028067, -0.017516, -0.023369, -0.022817, -0.025996, -0.038556, -0.042563, -0.050594, -0.050035, -0.051434, -0.056272, -0.064052, -0.074741, -0.092408, -0.102419, -0.112093, -0.126750, -0.140980
-0.143292, -0.127578, -0.112085, -0.096045, -0.085233, -0.071441, -0.056742, -0.051795, -0.052718, -0.031777, -0.031944, -0.036246, -0.025718, -0.029490, -0.025273, -0.026374, -0.023381, -0.026894, -0.010251, -0.013891, -0.007423, -0.011167, -0.013681, -0.010517, -0.019920, -0.017554, -0.028737, -0.038903, -0.049214, -0.050491, -0.055588, -0.055169, -0.068512, -0.079098, -0.084490, -0.098655, -0.108083, -0.117337, -0.138473, -0.147820
-0.157691, -0.138948, -0.121902, -0.107238, -0.093518, -0.076925, -0.061555, -0.054267, -0.044094, -0.035429, -0.024886, -0.028781, -0.015470, -0.020190, -0.016234, -0.013087, -0.014073, -0.008567, -0.002643, -0.000727, -0.001380, 0.004200, -0.005120, -0.004700, -0.001854, -0.011976, -0.017061, -0.029542, -0.038822, -0.045711, -0.052735, -0.059099, -0.053620, -0.072406, -0.081947, -0.089309, -0.106151, -0.116396, -0.126931, -0.140595
-0.161066, -0.148106, -0.131332, -0.115860, -0.096614, -0.075598, -0.063729, -0.056040, -0.043045, -0.034527, -0.029302, -0.024942, -0.024131, -0.014142, -0.018292, -0.014417, -0.000371, -0.005596, 0.000054, 0.007287, 0.003707, 0.005573, 0.002407, -0.004032, -0.004296, -0.015505, -0.027972, -0.031577, -0.049724, -0.054087, -0.057075, -0.066158, -0.072001, -0.078872, -0.095705, -0.102224, -0.107986, -0.125552, -0.144074, -0.155713
-0.161770, -0.146927, -0.132682, -0.118662, -0.101027, -0.075641, -0.058551, -0.051786, -0.032134, -0.023342, -0.023484, -0.019476, -0.008228, -0.006091, -0.002516, -0.000549, 0.004567, 0.010575, 0.008347, 0.015799, 0.014618, 0.013303, 0.010051, 0.008941, 0.002665, 0.000378, -0.014913, -0.025195, -0.037791, -0.041054, -0.047983, -0.057830, -0.062858, -0.068277, -0.085972, -0.090944, -0.100302, -0.116633, -0.132306, -0.149218
-0.157331, -0.148104, -0.126898, -0.107516, -0.090225, -0.074798, -0.055607, -0.049395, -0.038086, -0.027087, -0.022276, -0.017701, -0.012106, -0.009366, -0.005585, -0.002933, 0.008415, 0.005420, 0.016745, 0.015099, 0.024175, 0.012965, 0.008969, 0.009464, -0.003087, -0.008987, -0.014670, -0.029272, -0.036053, -0.043702, -0.059302, -0.055073, -0.069686, -0.085032, -0.085440, -0.096769, -0.116466, -0.123301, -0.139940, -0.150561
-0.163726, -0.147213, -0.124236, -0.109557, -0.091312, -0.071663, -0.061257, -0.042420, -0.035019, -0.026856, -0.013893, -0.011389, -0.000321, 0.004288, 0.003229, 0.012159, 0.016677, 0.017625, 0.017327, 0.023616, 0.016867, 0.026491, 0.019088, 0.015923, 0.014232, 0.003014, -0.009956, -0.018372, -0.028397, -0.042398, -0.045371, -0.050009, -0.057606, -0.070114, -0.081858, -0.090768, -0.099109, -0.113893, -0.130374, -0.144075
-0.176563, -0.159584, -0.138437, -0.121810, -0.100680, -0.083903, -0.066482, -0.058677, -0.046862, -0.034790, -0.031497, -0.017911, -0.009646, -0.006108, 0.004878, 0.007445, 0.019082, 0.013271, 0.012750, 0.015598, 0.024531, 0.020530, 0.018072, 0.013369, 0.000707, -0.002648, -0.018259, -0.028115, -0.039486, -0.053939, -0.064631, -0.060736, -0.070288, -0.076150, -0.093867, -0.111913, -0.124983, -0.128848, -0.150861, -0.153125
-0.177423, -0.159979, -0.141597, -0.127927, -0.111721, -0.090287, -0.072669, -0.058398, -0.046900, -0.037350, -0.022533, -0.013604, 0.000429, 0.002282, 0.019868, 0.020236, 0.020564, 0.024548, 0.022305, 0.029570, 0.023641, 0.031001, 0.027813, 0.023310, 0.015059, 0.007859, -0.003597, -0.020619, -0.028524, -0.040421, -0.057904, -0.057882, -0.063612, -0.078410, -0.089647, -0.100380, -0.116602, -0.127115, -0.144839, -0.156967
-0.192792, -0.178227, -0.156368, -0.144862, -0.126305, -0.103402, -0.086762, -0.067475, -0.049829, -0.041091, -0.032086, -0.016509, -0.005415, -0.002886, 0.008007, 0.021121, 0.018182, 0.030122, 0.029148, 0.033840, 0.040301, 0.026647, 0.031109, 0.023861, 0.016278, 0.003576, -0.013296, -0.025311, -0.039234, -0.049955, -0.060997, -0.075229, -0.083187, -0.087913, -0.106468, -0.118823, -0.131272, -0.141769, -0.164630, -0.171625
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh 80C]
version = 1
points =
0.014716, 0.018905, 0.022130, 0.021657, 0.022575, 0.016651, 0.012903, 0.008000, -0.000454, -0.010089, -0.017357, -0.032627, -0.041369, -0.047192, -0.052608, -0.063295, -0.063191, -0.061223, -0.070392, -0.066938, -0.061376, -0.069617, -0.063341, -0.055582, -0.051602, -0.051721, -0.056805, -0.044266, -0.044092, -0.042936, -0.036539, -0.025426, -0.021289, -0.010471, -0.000529, -0.000706, -0.000053, 0.002008, 0.001249, 0.004486
0.003644, 0.007263, 0.007426, 0.006504, 0.004287, 0.006732, 0.006525, -0.008166, -0.009803, -0.009325, -0.027590, -0.036452, -0.043088, -0.050327, -0.055910, -0.066707, -0.054789, -0.063406, -0.070651, -0.055135, -0.056944, -0.062823, -0.058690, -0.051527, -0.056532, -0.050824, -0.041787, -0.052851, -0.042124, -0.031219, -0.034750, -0.028072, -0.013276, -0.009052, -0.003244, -0.001540, 0.002006, 0.000418, -0.000012, -0.005310
0.002850, 0.008392, 0.013026, 0.015288, 0.018943, 0.017617, 0.019218, 0.007562, 0.002286, 0.003136, -0.008217, -0.013489, -0.020501, -0.032757, -0.037171, -0.036230, -0.045487, -0.040095, -0.045625, -0.040415, -0.039895, -0.037086, -0.041172, -0.037509, -0.036753, -0.035902, -0.031374, -0.031702, -0.026967, -0.022375, -0.019933, -0.009980, -0.002361, 0.002561, 0.005248, 0.007815, 0.011755, 0.007544, 0.004417, 0.003121
-0.001141, 0.000514, 0.007621, 0.014050, 0.014791, 0.007605, 0.017034, 0.010894, 0.003727, 0.001980, -0.006087, -0.011110, -0.029108, -0.030064, -0.031688, -0.039354, -0.040396, -0.034471, -0.038189, -0.031446, -0.027691, -0.029578, -0.031392, -0.026206, -0.029147, -0.028238, -0.018988, -0.026758, -0.021195, -0.010572, -0.014147, -0.007288, 0.009163, 0.008262, 0.008652, 0.011189, 0.009535, 0.006602, 0.010021, 0.005173
0.002640, 0.002954, 0.009052, 0.012505, 0.017776, 0.025521, 0.025298, 0.021745, 0.015984, 0.013896, 0.008478, 0.002557, -0.006036, -0.015655, -0.017801, -0.011750, -0.017693, -0.025293, -0.019257, -0.013280, -0.013119, -0.007545, -0.012287, -0.004823, -0.006433, -0.013515, -0.008502, -0.006654, -0.012181, -0.001602, 0.004339, 0.006295, 0.014176, 0.022187, 0.020665, 0.014033, 0.012083, 0.012726, 0.011645, 0.005386
-0.015700, -0.009344, -0.003137, 0.006278, 0.008049, 0.016966, 0.024723, 0.015057, 0.016107, 0.013613, 0.005391, -0.001878, -0.003443, -0.007336, -0.010694, -0.012487, -0.008496, -0.022715, -0.014490, -0.007543, -0.006589, -0.011383, -0.005191, 0.000149, -0.006063, -0.000264, -0.004796, -0.002074, 0.007011, 0.004411, 0.009173, 0.017082, 0.018268, 0.022690, 0.021899, 0.019556, 0.016689, 0.009959, 0.013010, 0.004035
-0.023422, -0.017486, -0.006784, 0.000336, 0.006756, 0.014970, 0.019967, 0.023124, 0.017179, 0.013403, 0.012598, 0.003743, 0.006304, 0.001260, -0.003838, -0.003741, -0.003462, -0.011483, -0.007378, -0.006617, -0.004080, 0.002756, 0.002303, 0.001816, 0.002910, 0.002382, 0.008108, 0.000082, 0.004324, 0.004791, 0.006561, 0.018032, 0.019677, 0.020122, 0.018496, 0.014773, 0.012800, 0.011059, 0.007163, 0.003640
-0.036192, -0.029401, -0.018701, -0.004195, 0.004025, 0.004211, 0.012815, 0.014576, 0.009539, 0.009801, 0.002291, -0.001030, 0.002026, -0.003435, -0.003398, -0.008373, -0.011758, -0.010027, -0.010937, -0.009340, 0.002131, -0.002689, -0.006455, 0.001206, 0.000097, -0.000007, 0.006733, 0.002998, 0.007065, 0.001654, 0.014122, 0.019928, 0.020106, 0.020136, 0.020849, 0.016075, 0.013752, 0.005720, 0.003635, -0.004602
-0.038800, -0.029286, -0.019241, -0.013745, 0.003260, 0.014599, 0.021623, 0.021593, 0.016239, 0.014292, 0.012519, 0.014037, 0.008938, 0.004941, 0.001919, 0.000339, -0.002788, -0.006986, -0.003200, -0.001893, 0.010944, 0.005153, 0.003706, 0.012013, 0.017621, 0.006993, 0.003464, 0.012339, 0.005098, 0.014120, 0.024693, 0.021901, 0.024392, 0.029698, 0.024619, 0.023926, 0.017386, 0.010235, 0.003348, 0.000304
-0.053563, -0.039250, -0.024235, -0.022109, -0.005264, 0.007541, 0.009399, 0.008181, 0.011273, 0.009116, 0.006308, 0.005348, 0.004668, -0.001764, -0.002088, -0.007688, -0.016701, -0.007625, -0.019264, 0.000855, 0.003487, -0.003664, -0.004026, 0.011153, 0.005425, 0.016491, 0.017588, 0.009862, 0.023317, 0.018293, 0.024929, 0.028068, 0.026455, 0.028053, 0.033105, 0.028316, 0.018615, 0.015048, 0.006555, -0.002737
-0.058380, -0.052341, -0.037568, -0.027521, -0.014649, -0.000990, 0.002068, 0.007148, 0.009107, 0.004148, 0.005334, 0.006934, 0.000002, -0.001766, -0.003343, -0.011705, -0.015828, -0.017576, -0.014243, -0.010099, -0.000500, -0.001848, -0.003831, 0.012162, 0.007440, 0.017413, 0.030827, 0.015730, 0.017118, 0.021675, 0.018111, 0.022598, 0.027051, 0.020651, 0.023612, 0.021771, 0.008938, 0.004431, -0.003085, -0.007981
-0.073342, -0.062562, -0.045204, -0.041477, -0.024874, -0.017175, -0.011007, -0.008277, -0.007123, -0.000270, -0.009293, -0.008444, -0.009256, -0.009285, -0.003933, -0.011514, -0.026828, -0.026670, -0.024705, -0.017354, -0.012245, -0.011513, -0.004511, -0.007872, 0.002254, 0.027400, 0.025259, 0.018650, 0.015367, 0.009562, 0.016613, 0.017929, 0.020322, 0.021837, 0.015036, 0.010812, 0.001733, -0.006874, -0.014802, -0.025875
-0.078136, -0.064488, -0.050701, -0.045776, -0.031305, -0.018143, -0.010284, -0.005345, -0.006107, 0.001100, -0.003722, -0.005008, -0.005063, -0.013788, -0.005262, -0.014691, -0.017776, -0.020362, -0.026831, -0.020245, -0.013116, -0.002514, -0.016305, -0.003235, -0.015515, -0.002504, 0.003924, -0.006162, 0.012421, 0.003384, 0.011207, 0.015858, 0.011833, 0.018216, 0.014945, 0.005020, -0.002828, -0.011582, -0.022140, -0.025973
-0.083270, -0.068941, -0.058998, -0.046873, -0.038565, -0.024122, -0.018703, -0.015703, -0.010744, -0.003023, -0.005232, -0.005735, -0.008045, -0.015315, -0.018230, -0.021917, -0.026121, -0.026201, -0.030411, -0.019144, -0.015575, -0.018722, -0.017786, -0.010587, -0.011065, -0.008381, -0.002389, -0.005699, 0.000644, 0.008432, 0.001634, 0.009898, 0.006093, 0.009692, 0.012479, 0.004412, -0.009274, -0.022969, -0.029094, -0.042201
-0.085832, -0.077231, -0.064109, -0.053252, -0.041125, -0.025964, -0.015882, -0.008664, -0.006862, -0.000797, 0.001569, 0.003995, -0.001047, -0.006835, -0.016703, -0.016518, -0.020389, -0.027987, -0.023917, -0.020757, -0.013899, -0.015836, -0.019446, -0.023046, -0.017757, -0.007725, -0.007741, -0.000598, 0.000056, 0.004475, 0.004828, 0.009970, 0.008371, 0.012026, -0.000372, -0.005340, -0.007786, -0.020974, -0.031188, -0.044115
-0.102544, -0.092665, -0.073164, -0.064770, -0.051202, -0.043750, -0.033981, -0.029325, -0.020154, -0.013960, -0.014977, -0.021754, -0.015910, -0.019041, -0.028487, -0.020956, -0.026074, -0.022448, -0.019786, -0.018986, -0.014926, -0.021484, -0.018005, -0.027720, -0.015854, -0.022109, -0.008885, -0.004168, -0.007627, 0.003074, -0.005659, -0.003173, -0.003861, -0.004075, -0.009571, -0.016267, -0.024078, -0.029423, -0.042872, -0.058538
-0.105554, -0.093090, -0.081851, -0.073346, -0.060013, -0.043209, -0.033178, -0.018129, -0.016926, -0.013935, -0.009025, -0.019463, -0.011720, -0.018931, -0.016113, -0.023431, -0.021047, -0.024704, -0.016201, -0.017424, -0.014246, -0.024487, -0.020554, -0.015038, -0.016248, -0.018052, -0.020241, -0.014420, -0.014688, -0.006758, -0.010540, -0.012931, -0.012046, -0.016090, -0.019370, -0.024888, -0.038703, -0.044262, -0.053309, -0.073324
-0.102533, -0.092944, -0.080324, -0.065748, -0.063323, -0.050155, -0.037839, -0.026521, -0.023352, -0.008307, -0.012682, -0.018916, -0.014872, -0.011758, -0.019334, -0.022047, -0.024636, -0.023748, -0.016457, -0.016263, -0.013425, -0.017807, -0.009974, -0.010215, -0.007714, -0.020671, -0.017900, -0.014968, -0.013082, -0.010130, -0.005460, -0.016018, -0.008864, -0.019561, -0.022135, -0.028540, -0.041548, -0.054343, -0.061863, -0.075439
-0.109519, -0.097617, -0.084881, -0.075175, -0.062703, -0.049101, -0.029230, -0.026245, -0.013521, -0.006194, -0.000586, -0.001362, -0.001805, -0.005275, -0.008417, -0.019518, -0.011584, -0.014768, -0.016921, -0.004129, -0.007413, -0.002994, -0.009227, -0.011903, -0.020744, -0.018597, -0.021947, -0.003403, -0.010522, -0.002862, -0.006462, -0.013889, -0.012058, -0.021369, -0.026415, -0.028316, -0.045223, -0.050379, -0.064065, -0.076175
-0.114982, -0.103596, -0.089375, -0.074962, -0.066622, -0.053905, -0.043285, -0.030981, -0.020098, -0.008769, -0.008149, -0.006966, -0.002970, -0.014506, -0.017842, -0.025272, -0.020734, -0.019500, -0.017828, -0.007856, -0.003907, -0.005062, -0.018248, -0.012391, -0.025685, -0.026889, -0.030557, -0.015159, -0.019359, -0.020340, -0.027373, -0.030821, -0.032788, -0.037291, -0.044161, -0.048894, -0.059748, -0.070114, -0.078457, -0.087723
-0.134719, -0.114677, -0.101787, -0.090757, -0.079667, -0.065034, -0.040259, -0.031757, -0.025437, -0.014165, -0.009774, -0.011821, -0.006247, -0.010432, -0.017449, -0.019823, -0.022749, -0.019791, -0.012517, -0.016386, -0.008593, -0.021524, -0.010610, -0.028035, -0.024718, -0.023540, -0.026031, -0.025054, -0.029929, -0.026632, -0.033179, -0.039199, -0.046523, -0.047158, -0.062288, -0.065127, -0.079019, -0.085771, -0.097495, -0.106560
-0.138939, -0.128780, -0.111983, -0.095212, -0.087303, -0.071161, -0.057468, -0.046865, -0.038466, -0.028353, -0.028507, -0.029713, -0.023724, -0.026267, -0.032102, -0.034490, -0.031144, -0.026806, -0.028768, -0.021267, -0.024675, -0.017998, -0.027684, -0.029675, -0.031084, -0.039156, -0.035935, -0.038292, -0.036473, -0.041926, -0.043090, -0.058419, -0.056924, -0.067709, -0.070746, -0.077496, -0.094337, -0.100427, -0.111912, -0.122281
-0.152504, -0.137941, -0.119723, -0.110753, -0.094274, -0.077271, -0.060698, -0.048738, -0.039031, -0.030275, -0.025434, -0.024488, -0.022846, -0.022341, -0.028565, -0.028598, -0.027824, -0.017346, -0.026218, -0.019615, -0.023889, -0.025794, -0.015156, -0.034636, -0.025281, -0.025814, -0.029078, -0.030713, -0.044046, -0.038346, -0.048656, -0.050027, -0.054211, -0.063247, -0.069468, -0.078547, -0.091837, -0.100691, -0.109948, -0.124609
-0.146518, -0.135499, -0.123102, -0.105325, -0.090115, -0.080689, -0.060363, -0.049737, -0.045319, -0.032343, -0.025814, -0.025045, -0.022494, -0.026834, -0.036990, -0.035204, -0.029348, -0.025274, -0.025006, -0.019839, -0.018487, -0.024260, -0.019748, -0.027255, -0.027227, -0.026291, -0.023260, -0.033852, -0.038565, -0.038454, -0.049966, -0.046177, -0.060812, -0.066586, -0.069093, -0.081949, -0.094800, -0.102458, -0.118103, -0.131361
-0.151260, -0.140747, -0.124607, -0.118399, -0.097615, -0.081759, -0.061422, -0.054578, -0.038324, -0.036061, -0.025866, -0.024198, -0.018762, -0.015509, -0.014710, -0.024920, -0.018765, -0.022234, -0.021037, -0.025439, -0.020954, -0.024693, -0.025920, -0.030341, -0.026361, -0.029295, -0.028394, -0.031077, -0.034491, -0.035912, -0.039394, -0.042810, -0.051468, -0.054812, -0.068722, -0.079790, -0.089149, -0.096825, -0.113430, -0.127073
-0.145886, -0.135368, -0.119421, -0.105990, -0.094400, -0.073752, -0.063954, -0.049194, -0.037503, -0.033239, -0.021610, -0.013675, -0.016263, -0.014384, -0.023814, -0.024941, -0.026762, -0.029435, -0.026505, -0.027814, -0.029139, -0.026253, -0.032990, -0.032784, -0.025493, -0.029449, -0.026163, -0.038077, -0.026925, -0.039846, -0.043902, -0.052270, -0.056862, -0.061369, -0.066508, -0.081817, -0.093954, -0.105577, -0.122624, -0.135042
-0.147915, -0.138329, -0.119625, -0.108278, -0.097571, -0.077034, -0.064483, -0.051097, -0.035064, -0.029597, -0.021101, -0.021770, -0.019127, -0.019632, -0.032314, -0.023335, -0.028646, -0.027049, -0.027558, -0.027010, -0.024330, -0.023423, -0.022452, -0.030062, -0.024119, -0.023657, -0.027256, -0.034388, -0.035836, -0.035411, -0.042965, -0.047033, -0.048098, -0.055227, -0.065979, -0.081604, -0.084134, -0.099232, -0.116439, -0.131656
-0.142801, -0.129540, -0.112330, -0.099829, -0.084164, -0.073359, -0.060205, -0.047571, -0.034759, -0.025635, -0.022801, -0.028969, -0.025607, -0.021371, -0.022284, -0.019469, -0.017456, -0.019692, -0.015899, -0.017163, -0.007430, -0.016339, -0.015127, -0.023952, -0.019661, -0.021439, -0.028810, -0.035042, -0.035397, -0.039697, -0.042452, -0.041018, -0.050269, -0.056914, -0.067479, -0.078543, -0.094244, -0.107848, -0.120335, -0.135787
-0.153316, -0.139130, -0.122844, -0.111431, -0.092042, -0.074405, -0.060167, -0.046000, -0.032213, -0.027186, -0.026683, -0.029203, -0.028507, -0.018427, -0.015013, -0.017465, -0.011388, -0.014620, -0.013670, -0.009261, -0.010932, -0.011597, -0.014995, -0.015158, -0.018332, -0.020046, -0.023309, -0.028356, -0.036656, -0.041843, -0.046931, -0.043813, -0.045336, -0.050812, -0.064313, -0.076904, -0.095759, -0.107648, -0.120723, -0.136882
-0.147656, -0.134011, -0.116974, -0.096654, -0.082928, -0.070839, -0.053277, -0.052405, -0.033256, -0.023068, -0.020610, -0.028263, -0.024454, -0.013315, -0.019944, -0.018990, -0.015243, -0.007947, -0.010828, -0.002644, -0.008317, -0.003621, -0.003297, -0.009846, -0.003823, -0.016788, -0.013081, -0.024902, -0.033005, -0.040283, -0.039125, -0.044847, -0.048848, -0.062053, -0.070114, -0.085844, -0.101699, -0.121406, -0.133415, -0.146519
-0.147847, -0.129364, -0.110242, -0.098814, -0.079473, -0.065484, -0.054268, -0.039699, -0.027094, -0.017037, -0.008735, -0.013786, -0.010384, -0.006268, -0.008301, 0.001786, -0.005110, 0.002126, 0.004001, 0.005308, 0.007012, 0.005567, 0.002654, 0.011305, 0.000800, 0.004577, -0.004710, -0.016622, -0.019191, -0.028227, -0.034350, -0.035644, -0.044765, -0.053943, -0.065566, -0.087176, -0.098796, -0.108957, -0.125010, -0.143202
-0.148311, -0.129530, -0.111627, -0.095413, -0.078435, -0.065168, -0.049414, -0.041925, -0.038237, -0.018036, -0.015057, -0.016618, -0.006841, -0.006192, -0.003922, -0.002084, -0.000728, -0.004115, 0.015236, 0.009468, 0.017848, 0.011779, 0.014671, 0.011023, 0.006096, 0.000304, -0.007624, -0.018456, -0.027303, -0.035545, -0.038845, -0.047164, -0.054144, -0.069641, -0.073423, -0.095228, -0.105020, -0.116771, -0.140044, -0.152540
-0.161344, -0.140468, -0.119230, -0.104951, -0.087837, -0.068613, -0.051838, -0.042822, -0.030394, -0.021004, -0.009799, -0.012061, 0.002389, 0.000950, 0.005374, 0.002660, 0.008258, 0.015993, 0.018934, 0.026378, 0.024797, 0.029036, 0.016215, 0.022294, 0.014359, 0.007608, 0.004533, -0.013461, -0.017709, -0.028934, -0.038274, -0.046629, -0.046043, -0.064101, -0.074701, -0.085165, -0.102305, -0.115551, -0.129513, -0.145614
-0.164011, -0.151878, -0.131263, -0.116048, -0.093663, -0.069313, -0.058982, -0.049790, -0.032107, -0.023453, -0.016759, -0.009597, -0.004755, 0.002046, 0.002094, 0.009494, 0.017329, 0.022213, 0.022269, 0.028923, 0.027525, 0.027750, 0.026968, 0.018618, 0.017741, 0.003494, -0.007991, -0.013214, -0.029128, -0.039281, -0.044017, -0.056036, -0.060154, -0.072686, -0.085740, -0.098275, -0.105208, -0.127390, -0.145659, -0.159976
-0.173269, -0.153868, -0.137921, -0.122237, -0.103107, -0.076628, -0.059067, -0.047452, -0.024776, -0.017426, -0.012021, -0.007690, 0.006957, 0.009699, 0.012665, 0.015294, 0.022122, 0.033493, 0.026769, 0.039118, 0.036815, 0.034208, 0.024411, 0.029535, 0.021962, 0.016597, -0.001492, -0.012554, -0.024036, -0.032736, -0.037850, -0.048167, -0.057912, -0.064077, -0.085080, -0.092333, -0.101916, -0.121054, -0.137447, -0.155636
-0.169127, -0.156482, -0.131042, -0.110355, -0.092212, -0.073337, -0.052259, -0.043791, -0.031612, -0.017806, -0.010129, -0.005910, -0.001653, 0.008936, 0.008769, 0.015636, 0.028749, 0.021665, 0.037365, 0.034439, 0.042659, 0.034818, 0.027185, 0.027465, 0.016793, 0.009079, 0.002464, -0.016090, -0.019292, -0.031901, -0.050462, -0.048057, -0.062397, -0.079005, -0.082535, -0.096149, -0.117908, -0.127236, -0.144318, -0.157413
-0.175939, -0.155520, -0.130809, -0.112179, -0.092228, -0.070571, -0.059239, -0.040038, -0.031739, -0.020000, -0.001880, 0.000826, 0.010385, 0.017510, 0.019764, 0.026188, 0.030171, 0.036594, 0.036017, 0.040583, 0.039507, 0.044684, 0.033628, 0.037057, 0.026366, 0.017439, 0.007821, -0.004033, -0.017111, -0.028727, -0.036893, -0.046335, -0.053221, -0.068344, -0.081981, -0.093159, -0.105425, -0.120653, -0.138111, -0.153921
-0.183850, -0.169050, -0.144929, -0.123223, -0.103438, -0.083231, -0.064112, -0.056125, -0.040390, -0.025147, -0.022784, -0.007482, 0.002267, 0.002721, 0.022171, 0.023900, 0.025798, 0.034433, 0.027514, 0.036866, 0.045636, 0.035314, 0.034978, 0.028699, 0.015783, 0.012858, -0.003312, -0.014363, -0.028016, -0.044834, -0.054204, -0.055255, -0.063675, -0.075276, -0.091861, -0.115019, -0.127226, -0.133464, -0.156106, -0.161755
-0.189656, -0.170829, -0.150002, -0.134181, -0.115262, -0.090769, -0.072914, -0.056688, -0.040596, -0.028351, -0.014975, -0.002618, 0.009975, 0.016009, 0.031774, 0.032892, 0.033502, 0.042420, 0.037935, 0.046700, 0.038499, 0.047628, 0.042669, 0.037316, 0.030814, 0.019172, 0.009945, -0.008587, -0.022260, -0.027583, -0.049224, -0.060101, -0.057784, -0.076992, -0.095323, -0.103057, -0.118559, -0.134440, -0.147562, -0.166494
-0.200519, -0.182546, -0.161147, -0.147143, -0.128708, -0.101681, -0.083034, -0.064714, -0.042170, -0.030891, -0.023510, -0.006997, 0.009600, 0.013200, 0.022601, 0.036959, 0.035694, 0.047306, 0.045521, 0.051201, 0.060493, 0.044020, 0.051799, 0.040091, 0.031153, 0.018588, 0.002504, -0.012693, -0.029034, -0.038284, -0.050370, -0.068237, -0.077021, -0.086249, -0.104358, -0.120061, -0.132896, -0.144890, -0.170504, -0.181261
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh 110C]
version = 1
points =
0.017601, 0.023657, 0.031301, 0.037088, 0.040271, 0.038013, 0.040663, 0.035902, 0.030789, 0.025849, 0.021022, 0.006714, -0.001628, -0.004383, -0.008860, -0.021505, -0.017761, -0.014027, -0.024237, -0.018960, -0.012020, -0.021969, -0.014846, -0.008982, -0.008352, -0.005195, -0.015184, -0.002549, -0.001564, -0.004080, 0.000630, 0.012339, 0.011327, 0.023171, 0.027435, 0.021915, 0.019800, 0.017212, 0.012105, 0.010930
0.007781, 0.013596, 0.021243, 0.025837, 0.026983, 0.033377, 0.036959, 0.024644, 0.024456, 0.029908, 0.013461, 0.005003, 0.003555, -0.004270, -0.012939, -0.015245, -0.008934, -0.016573, -0.016790, -0.005662, -0.006684, -0.009731, -0.011215, -0.004167, -0.006716, -0.003945, 0.000689, -0.005382, 0.000258, 0.009328, 0.002408, 0.009794, 0.018544, 0.020888, 0.023812, 0.020835, 0.023078, 0.015239, 0.012622, 0.001381
0.006149, 0.015871, 0.024380, 0.034448, 0.038707, 0.045213, 0.046422, 0.040535, 0.037748, 0.042194, 0.035215, 0.029505, 0.024365, 0.015163, 0.011191, 0.011279, 0.004898, 0.012500, 0.004527, 0.010456, 0.014662, 0.014805, 0.012139, 0.012714, 0.012206, 0.015282, 0.016566, 0.017598, 0.019939, 0.020890, 0.021529, 0.032875, 0.035803, 0.035002, 0.036027, 0.035495, 0.031240, 0.024500, 0.017577, 0.011361
0.000510, 0.009436, 0.021393, 0.030510, 0.035255, 0.037599, 0.047714, 0.042497, 0.040575, 0.040459, 0.037248, 0.031280, 0.020065, 0.019417, 0.018140, 0.013035, 0.013219, 0.017940, 0.016281, 0.021703, 0.025484, 0.024636, 0.017570, 0.024611, 0.022182, 0.021729, 0.028892, 0.020567, 0.024789, 0.033268, 0.026944, 0.032691, 0.044747, 0.040752, 0.039306, 0.036676, 0.029942, 0.022683, 0.023414, 0.012505
0.001286, 0.009072, 0.018029, 0.029754, 0.039935, 0.051108, 0.053271, 0.053138, 0.050918, 0.050934, 0.050108, 0.044189, 0.039771, 0.033091, 0.031640, 0.037520, 0.034494, 0.028066, 0.031237, 0.036319, 0.037234, 0.045248, 0.039160, 0.046136, 0.041126, 0.037322, 0.037408, 0.042179, 0.033091, 0.040041, 0.047495, 0.045555, 0.047062, 0.054652, 0.048647, 0.039235, 0.034006, 0.032386, 0.024944, 0.014260
-0.016481, -0.005739, 0.008590, 0.019522, 0.026830, 0.038712, 0.050196, 0.045062, 0.049547, 0.048198, 0.043118, 0.038479, 0.037975, 0.035880, 0.034056, 0.032547, 0.040120, 0.027091, 0.033356, 0.039974, 0.041248, 0.035941, 0.043986, 0.047734, 0.040691, 0.044827, 0.041816, 0.041881, 0.046284, 0.045376, 0.049399, 0.051629, 0.052668, 0.051926, 0.049274, 0.041425, 0.034940, 0.024646, 0.022586, 0.008066
-0.027637, -0.015869, -0.000104, 0.013734, 0.024930, 0.038278, 0.044619, 0.048752, 0.046410, 0.046352, 0.051359, 0.041118, 0.046460, 0.045349, 0.042981, 0.044238, 0.045585, 0.035485, 0.041153, 0.042892, 0.046241, 0.052627, 0.050215, 0.050714, 0.051046, 0.048301, 0.053268, 0.047908, 0.048633, 0.045185, 0.047306, 0.053344, 0.051437, 0.051152, 0.047079, 0.038020, 0.030741, 0.025599, 0.018433, 0.008456
-0.038599, -0.026205, -0.009719, 0.008190, 0.020320, 0.027831, 0.038505, 0.044316, 0.043348, 0.046637, 0.043988, 0.040360, 0.046040, 0.041447, 0.040975, 0.041335, 0.035922, 0.037383, 0.039361, 0.043187, 0.051715, 0.045848, 0.047907, 0.050746, 0.048523, 0.049359, 0.047485, 0.047011, 0.048386, 0.044501, 0.053551, 0.054911, 0.053579, 0.049497, 0.048172, 0.037865, 0.032237, 0.019259, 0.012386, -0.002100
-0.041333, -0.029625, -0.013609, 0.000261, 0.020118, 0.034096, 0.045389, 0.050574, 0.048357, 0.049996, 0.051594, 0.052664, 0.051090, 0.050485, 0.049638, 0.047791, 0.048234, 0.044687, 0.050355, 0.051971, 0.064992, 0.059337, 0.060010, 0.063546, 0.068117, 0.057371, 0.055013, 0.057792, 0.051082, 0.056051, 0.062650, 0.058553, 0.061119, 0.060833, 0.051599, 0.046891, 0.035942, 0.025808, 0.011433, 0.002952
-0.053645, -0.033427, -0.016177, -0.006872, 0.011854, 0.030887, 0.038268, 0.039371, 0.046002, 0.047917, 0.048726, 0.049771, 0.047950, 0.046502, 0.048802, 0.045562, 0.039735, 0.047000, 0.041105, 0.055052, 0.062816, 0.052763, 0.054457, 0.068109, 0.062015, 0.070193, 0.068051, 0.059608, 0.065873, 0.060802, 0.065266, 0.064829, 0.058624, 0.058487, 0.058883, 0.047382, 0.036089, 0.024849, 0.013256, 0.000607
-0.061010, -0.047609, -0.028494, -0.014173, 0.001140, 0.023778, 0.028488, 0.037786, 0.040856, 0.041067, 0.046333, 0.047913, 0.044536, 0.047335, 0.047965, 0.042348, 0.036723, 0.036548, 0.040274, 0.047610, 0.055906, 0.054585, 0.053571, 0.065965, 0.065851, 0.068666, 0.082528, 0.061327, 0.060580, 0.064000, 0.054453, 0.061931, 0.059721, 0.052859, 0.048142, 0.040120, 0.026885, 0.016571, 0.004892, -0.008425
-0.075352, -0.060225, -0.038908, -0.026788, -0.009568, 0.004600, 0.013268, 0.019786, 0.025267, 0.035535, 0.028383, 0.034557, 0.033447, 0.035531, 0.042992, 0.037004, 0.026906, 0.025281, 0.029692, 0.034833, 0.045404, 0.042564, 0.048756, 0.047994, 0.055802, 0.075180, 0.072232, 0.062445, 0.056547, 0.047775, 0.053272, 0.053206, 0.050999, 0.050049, 0.040408, 0.029693, 0.015300, 0.003804, -0.007888, -0.024390
-0.086364, -0.067028, -0.047497, -0.037585, -0.020976, 0.000383, 0.011744, 0.021521, 0.020697, 0.033042, 0.034026, 0.034231, 0.036730, 0.031605, 0.040323, 0.032690, 0.032614, 0.030170, 0.026732, 0.034128, 0.040825, 0.048209, 0.040469, 0.047362, 0.036980, 0.045537, 0.051032, 0.046611, 0.056557, 0.042376, 0.052659, 0.048497, 0.045919, 0.050124, 0.038766, 0.023446, 0.014171, -0.004254, -0.014079, -0.023753
-0.093086, -0.069979, -0.055386, -0.039175, -0.025528, -0.009591, 0.001509, 0.009989, 0.016545, 0.028616, 0.027342, 0.029059, 0.032086, 0.025456, 0.026532, 0.024334, 0.023363, 0.023815, 0.022413, 0.033153, 0.032981, 0.037435, 0.027310, 0.037576, 0.035212, 0.041707, 0.044302, 0.036447, 0.045863, 0.045505, 0.041396, 0.046313, 0.036479, 0.036050, 0.033288, 0.017866, 0.001810, -0.013932, -0.024517, -0.041816
-0.097636, -0.081833, -0.063469, -0.046017, -0.029601, -0.008557, 0.003317, 0.015057, 0.020303, 0.032296, 0.038234, 0.039011, 0.038792, 0.037682, 0.029520, 0.032980, 0.031254, 0.024125, 0.030446, 0.032398, 0.042022, 0.039021, 0.026248, 0.035952, 0.031921, 0.043715, 0.040430, 0.044922, 0.045793, 0.044267, 0.041717, 0.042069, 0.037932, 0.041510, 0.023566, 0.014013, 0.008952, -0.013471, -0.025083, -0.039607
-0.107793, -0.091574, -0.069513, -0.057296, -0.039160, -0.023661, -0.010458, 0.000809, 0.010210, 0.023720, 0.025056, 0.022478, 0.028481, 0.028830, 0.021366, 0.029702, 0.024944, 0.027085, 0.029731, 0.030428, 0.037746, 0.031961, 0.037559, 0.025389, 0.035999, 0.029982, 0.041019, 0.041169, 0.038099, 0.040466, 0.031141, 0.029121, 0.020963, 0.018187, 0.010598, 0.002265, -0.013836, -0.021528, -0.042295, -0.061128
-0.107825, -0.091629, -0.077167, -0.063876, -0.044707, -0.021260, -0.010391, 0.010298, 0.014198, 0.024575, 0.033032, 0.026294, 0.035792, 0.031018, 0.036791, 0.032571, 0.033915, 0.032812, 0.042358, 0.042634, 0.047391, 0.037093, 0.037809, 0.038040, 0.036006, 0.038607, 0.032699, 0.038344, 0.034065, 0.036288, 0.029376, 0.026309, 0.022407, 0.010977, 0.006172, -0.007890, -0.021167, -0.030731, -0.049925, -0.070276
-0.110826, -0.094195, -0.076914, -0.056397, -0.050834, -0.032826, -0.015219, -0.000476, 0.009623, 0.025341, 0.028188, 0.025848, 0.030124, 0.035680, 0.029573, 0.030471, 0.030260, 0.033277, 0.038336, 0.039888, 0.042746, 0.041953, 0.045231, 0.045337, 0.046839, 0.032271, 0.034945, 0.034822, 0.032421, 0.032345, 0.032055, 0.020565, 0.019473, 0.006062, -0.001129, -0.010027, -0.030050, -0.043967, -0.059139, -0.079093
-0.117451, -0.099936, -0.080773, -0.065060, -0.049257, -0.028525, -0.008075, 0.003536, 0.016931, 0.029613, 0.037645, 0.041864, 0.044127, 0.045124, 0.040607, 0.035821, 0.044264, 0.039296, 0.040440, 0.054374, 0.051313, 0.052762, 0.048393, 0.046794, 0.038038, 0.030274, 0.035928, 0.038695, 0.043526, 0.037329, 0.030918, 0.021799, 0.017231, 0.010974, -0.004201, -0.012534, -0.029182, -0.041346, -0.059173, -0.077179
-0.122005, -0.104065, -0.085139, -0.065506, -0.055822, -0.034483, -0.021722, -0.005286, 0.009042, 0.020956, 0.028424, 0.033183, 0.038237, 0.031367, 0.030847, 0.028350, 0.037203, 0.042216, 0.043304, 0.053032, 0.052085, 0.053175, 0.039215, 0.042871, 0.029998, 0.028545, 0.021695, 0.033066, 0.026296, 0.022459, 0.012402, 0.003778, -0.003280, -0.009318, -0.022829, -0.030214, -0.048336, -0.063842, -0.076139, -0.092037
-0.144284, -0.119576, -0.101842, -0.084043, -0.068933, -0.047684, -0.023741, -0.007666, 0.002600, 0.016788, 0.025328, 0.027311, 0.034829, 0.032983, 0.027466, 0.032938, 0.034325, 0.035685, 0.040808, 0.039423, 0.045859, 0.031570, 0.045140, 0.029940, 0.026961, 0.031551, 0.022301, 0.026187, 0.012799, 0.012623, 0.004286, -0.007684, -0.015125, -0.023320, -0.041607, -0.049284, -0.069850, -0.078462, -0.092553, -0.108744
-0.150587, -0.131208, -0.110186, -0.087305, -0.075442, -0.056787, -0.037671, -0.024432, -0.008945, 0.003314, 0.006783, 0.010754, 0.017902, 0.016620, 0.017985, 0.013793, 0.022881, 0.024239, 0.027028, 0.032338, 0.029285, 0.037733, 0.026138, 0.024860, 0.016596, 0.016607, 0.014361, 0.004645, 0.002646, -0.003300, -0.006941, -0.025967, -0.027855, -0.043516, -0.050520, -0.062034, -0.086048, -0.097225, -0.110861, -0.124440
-0.162806, -0.145866, -0.120145, -0.103827, -0.085373, -0.063983, -0.045209, -0.027371, -0.013519, -0.000604, 0.009249, 0.012191, 0.016387, 0.021045, 0.015497, 0.016359, 0.026788, 0.029288, 0.027303, 0.034397, 0.034199, 0.027473, 0.029186, 0.026162, 0.015445, 0.022424, 0.013993, 0.014818, -0.002770, -0.001785, -0.013369, -0.017939, -0.025818, -0.040851, -0.051079, -0.063817, -0.083524, -0.093930, -0.110525, -0.133554
-0.161294, -0.143084, -0.126316, -0.106730, -0.086941, -0.071827, -0.050635, -0.035685, -0.026578, -0.010002, 0.002159, 0.004398, 0.009515, 0.010334, 0.004995, 0.012322, 0.014287, 0.023202, 0.021453, 0.032566, 0.024054, 0.023744, 0.022705, 0.013927, 0.014669, 0.012266, 0.010909, 0.002655, -0.007652, -0.008069, -0.021869, -0.023593, -0.040350, -0.047855, -0.058585, -0.073661, -0.093504, -0.101724, -0.124643, -0.139999
-0.165490, -0.150284, -0.129326, -0.118211, -0.093380, -0.069990, -0.048425, -0.036778, -0.018526, -0.009343, 0.002909, 0.009854, 0.017280, 0.020626, 0.022063, 0.020956, 0.024158, 0.024140, 0.025800, 0.024277, 0.032881, 0.018087, 0.024155, 0.016078, 0.016807, 0.008445, 0.009742, 0.001875, -0.000076, -0.011073, -0.013767, -0.022879, -0.033663, -0.038172, -0.054423, -0.075383, -0.087895, -0.103077, -0.118466, -0.139210
-0.164741, -0.149458, -0.128625, -0.108757, -0.094021, -0.070846, -0.057405, -0.037196, -0.023879, -0.011679, -0.002200, 0.010632, 0.012544, 0.017514, 0.007523, 0.014758, 0.011621, 0.018024, 0.018640, 0.019239, 0.018334, 0.017173, 0.012503, 0.011850, 0.015916, 0.010661, 0.012599, -0.006011, 0.001757, -0.013379, -0.020837, -0.029545, -0.038554, -0.044989, -0.056105, -0.073920, -0.091559, -0.109948, -0.131812, -0.148866
-0.161192, -0.146426, -0.123912, -0.107967, -0.091431, -0.063851, -0.052031, -0.033387, -0.013515, -0.004964, 0.008640, 0.009243, 0.015557, 0.018160, 0.008634, 0.022904, 0.015484, 0.021598, 0.020520, 0.027237, 0.024071, 0.027051, 0.025166, 0.021521, 0.019501, 0.018115, 0.012716, 0.003499, -0.004108, -0.007234, -0.015430, -0.021205, -0.030325, -0.038011, -0.048883, -0.073171, -0.085945, -0.106584, -0.123136, -0.146932
-0.163394, -0.144910, -0.123557, -0.105989, -0.085464, -0.068322, -0.055913, -0.034924, -0.020885, -0.007727, -0.000091, -0.003049, 0.004528, 0.010128, 0.010794, 0.015147, 0.023212, 0.018037, 0.030237, 0.025833, 0.035246, 0.027231, 0.028467, 0.019626, 0.020773, 0.015095, 0.010628, -0.000447, -0.004534, -0.015071, -0.016350, -0.022750, -0.031666, -0.042816, -0.060372, -0.072118, -0.096505, -0.113629, -0.129099, -0.149639
-0.163888, -0.147119, -0.126601, -0.110401, -0.089585, -0.066428, -0.048653, -0.031605, -0.015497, -0.003229, 0.001683, 0.003134, 0.006517, 0.019922, 0.022975, 0.025146, 0.030978, 0.030680, 0.030758, 0.042102, 0.034703, 0.037398, 0.031920, 0.027679, 0.025197, 0.017328, 0.015572, 0.005208, -0.006012, -0.007507, -0.020529, -0.021368, -0.024674, -0.041103, -0.057142, -0.071432, -0.096594, -0.112033, -0.128949, -0.150273
-0.169205, -0.149910, -0.126633, -0.103289, -0.083129, -0.066577, -0.047251, -0.043391, -0.019676, -0.006277, -0.002923, -0.001407, 0.005447, 0.014212, 0.017559, 0.018242, 0.025576, 0.034093, 0.029712, 0.039853, 0.034004, 0.037705, 0.037633, 0.029530, 0.032691, 0.016154, 0.018524, 0.001565, -0.003378, -0.017339, -0.017576, -0.028136, -0.038211, -0.050222, -0.063141, -0.081632, -0.107915, -0.125078, -0.145643, -0.163253
-0.169909, -0.150547, -0.122806, -0.108588, -0.087020, -0.064423, -0.048864, -0.033515, -0.016725, -0.000007, 0.004596, 0.007673, 0.013001, 0.024683, 0.023693, 0.033785, 0.030848, 0.038796, 0.040130, 0.045461, 0.043007, 0.044259, 0.042320, 0.039451, 0.035227, 0.034204, 0.020064, 0.013351, 0.001338, -0.009438, -0.017824, -0.023771, -0.034592, -0.045737, -0.066308, -0.087380, -0.099963, -0.120463, -0.140871, -0.163090
-0.172270, -0.148143, -0.126370, -0.103685, -0.085033, -0.064013, -0.047998, -0.036015, -0.027404, -0.008503, -0.000007, 0.001792, 0.017482, 0.017033, 0.023048, 0.028291, 0.031566, 0.032649, 0.049810, 0.043254, 0.050276, 0.047977, 0.049738, 0.045308, 0.035666, 0.031137, 0.018911, 0.003481, -0.008351, -0.017281, -0.026446, -0.036765, -0.044520, -0.063303, -0.071282, -0.097485, -0.113915, -0.126273, -0.156999, -0.169508
-0.185629, -0.163591, -0.134431, -0.117576, -0.097849, -0.070707, -0.050591, -0.034730, -0.021035, -0.010894, 0.005273, 0.008055, 0.024733, 0.024226, 0.031631, 0.038222, 0.039560, 0.048170, 0.050459, 0.055897, 0.056059, 0.060914, 0.051111, 0.049437, 0.047189, 0.033126, 0.025555, 0.011558, -0.003121, -0.010577, -0.025509, -0.035433, -0.040888, -0.058967, -0.077560, -0.087272, -0.108429, -0.127233, -0.147649, -0.167307
-0.189333, -0.171139, -0.148115, -0.129433, -0.101821, -0.076289, -0.060062, -0.047845, -0.027892, -0.013005, -0.007725, 0.003703, 0.013953, 0.017800, 0.025586, 0.034166, 0.038987, 0.051736, 0.046160, 0.053607, 0.055648, 0.052695, 0.051944, 0.045185, 0.040424, 0.023462, 0.013930, 0.001203, -0.013945, -0.026162, -0.034120, -0.047062, -0.054942, -0.072669, -0.087652, -0.103851, -0.117876, -0.136153, -0.162888, -0.181076
-0.200779, -0.176696, -0.153394, -0.135207, -0.112871, -0.080463, -0.063566, -0.042397, -0.022048, -0.010914, 0.001461, 0.005978, 0.022955, 0.029439, 0.033063, 0.037765, 0.045757, 0.054970, 0.053408, 0.063704, 0.058089, 0.062982, 0.053170, 0.048627, 0.049683, 0.035724, 0.020239, 0.010693, -0.010604, -0.018065, -0.031666, -0.045637, -0.052413, -0.064993, -0.085650, -0.094617, -0.113018, -0.135618, -0.156640, -0.179042
-0.196012, -0.175963, -0.150776, -0.125180, -0.102593, -0.078981, -0.055974, -0.043706, -0.028043, -0.012697, -0.003043, 0.010296, 0.012424, 0.028008, 0.029375, 0.037792, 0.052592, 0.048696, 0.062090, 0.060455, 0.067354, 0.061479, 0.052912, 0.052056, 0.041931, 0.026817, 0.020195, -0.001428, -0.006103, -0.021712, -0.040451, -0.045375, -0.060782, -0.081307, -0.086318, -0.104985, -0.131464, -0.139787, -0.167730, -0.182686
-0.204462, -0.183143, -0.151956, -0.130017, -0.107878, -0.078570, -0.063741, -0.043175, -0.029878, -0.016118, 0.005006, 0.009334, 0.022777, 0.033089, 0.037803, 0.045407, 0.050405, 0.058892, 0.059459, 0.064198, 0.062054, 0.067594, 0.060391, 0.059728, 0.044693, 0.036098, 0.021100, 0.007102, -0.003474, -0.019393, -0.027796, -0.043671, -0.054928, -0.072235, -0.087523, -0.104107, -0.123059, -0.136566, -0.160150, -0.179644
-0.210136, -0.189495, -0.165781, -0.139441, -0.112529, -0.090500, -0.068498, -0.057696, -0.036452, -0.020962, -0.013461, 0.006392, 0.014952, 0.019854, 0.038431, 0.041829, 0.048737, 0.054875, 0.055873, 0.061173, 0.070764, 0.056050, 0.058384, 0.050081, 0.037932, 0.030938, 0.013547, -0.004023, -0.015345, -0.034168, -0.046564, -0.052946, -0.066388, -0.077714, -0.098124, -0.124063, -0.142726, -0.151285, -0.179113, -0.188060
-0.217352, -0.196199, -0.171418, -0.152117, -0.132194, -0.101621, -0.078468, -0.058926, -0.040895, -0.027581, -0.006548, 0.005396, 0.020515, 0.030971, 0.047162, 0.048760, 0.053652, 0.062261, 0.054275, 0.068845, 0.061269, 0.066790, 0.058350, 0.054453, 0.047254, 0.031766, 0.027448, -0.002037, -0.015820, -0.023400, -0.045036, -0.054681, -0.061742, -0.085647, -0.101616, -0.115948, -0.135762, -0.152051, -0.168905, -0.191372
-0.229881, -0.210436, -0.185424, -0.163166, -0.142377, -0.114239, -0.091002, -0.070777, -0.048881, -0.030101, -0.017866, -0.004209, 0.016120, 0.027452, 0.033430, 0.052520, 0.051342, 0.063991, 0.066103, 0.068975, 0.078929, 0.061472, 0.068518, 0.055767, 0.044258, 0.032486, 0.015267, -0.004723, -0.018957, -0.034953, -0.048183, -0.069959, -0.080503, -0.095625, -0.113411, -0.131302, -0.151552, -0.168533, -0.196055, -0.208650
x_count = 40
y_count = 40
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 470.0
min_y = 30.0
max_y = 462.5
[bed_mesh Contact]
version = 1
points =
0.227083, 0.208490, 0.191458, 0.137865, 0.081771, 0.032552, 0.013802, 0.008177, 0.033802, 0.041615, 0.093021, 0.133958, 0.169740, 0.231146, 0.211146
0.232865, 0.254115, 0.247240, 0.211927, 0.175365, 0.122708, 0.105521, 0.108021, 0.117865, 0.133177, 0.142396, 0.173802, 0.176927, 0.231615, 0.176927
0.159896, 0.184427, 0.225208, 0.217708, 0.189271, 0.194896, 0.156927, 0.168333, 0.185208, 0.206771, 0.225521, 0.228021, 0.239427, 0.214583, 0.200365
0.115052, 0.193021, 0.256302, 0.253490, 0.245833, 0.234115, 0.216927, 0.253177, 0.243490, 0.248646, 0.254740, 0.287865, 0.255208, 0.223021, 0.163333
0.036615, 0.104427, 0.152240, 0.228333, 0.198177, 0.237083, 0.260521, 0.242396, 0.253021, 0.302240, 0.274583, 0.256302, 0.253646, 0.167552, 0.100365
-0.047917, 0.052708, 0.140833, 0.199740, 0.211615, 0.206615, 0.235052, 0.236458, 0.230208, 0.272396, 0.233958, 0.207240, 0.159115, 0.080521, -0.001667
-0.130104, -0.008073, 0.096458, 0.155990, 0.201146, 0.266771, 0.258177, 0.254115, 0.277865, 0.257552, 0.270990, 0.228490, 0.179583, 0.071771, -0.052292
-0.202135, -0.068854, 0.071146, 0.154271, 0.214271, 0.220208, 0.269427, 0.271458, 0.274427, 0.271927, 0.247240, 0.173646, 0.104271, 0.014271, -0.144948
-0.301198, -0.138073, -0.006198, 0.148646, 0.193333, 0.216458, 0.240990, 0.272708, 0.272552, 0.246302, 0.200677, 0.143958, 0.040521, -0.085729, -0.251042
2.292865, 2.302552, 2.381458, 0.078958, 0.181771, 0.209115, 0.260833, 0.274583, 0.249740, 0.219583, 0.178333, 0.093802, -0.021510, -0.167448, -0.344792
-0.476979, -0.267917, -0.051979, 0.064896, 0.166615, 0.193490, 0.257865, 0.292396, 0.280677, 0.241771, 0.166458, 0.099271, -0.008542, -0.186979, -0.402760
-0.502917, -0.248854, -0.044948, 0.111927, 0.183802, 0.262865, 0.297396, 0.335208, 0.308333, 0.258802, 0.181771, 0.099583, -0.060573, -0.230573, -0.461979
-0.608073, -0.355104, -0.118385, 0.039427, 0.130833, 0.225052, 0.297708, 0.304896, 0.310677, 0.255833, 0.157240, 0.070521, -0.081979, -0.279323, -0.524635
-0.618542, -0.425729, -0.198854, 0.008177, 0.103490, 0.203958, 0.274896, 0.302396, 0.268490, 0.246615, 0.136146, 0.047865, -0.148698, -0.352448, -0.604323
-0.540260, -0.586510, -0.297448, -0.093698, 0.076615, 0.135521, 0.244583, 0.267708, 0.271146, 0.217240, 0.090833, -0.058854, -0.237604, -0.456510, -0.501979
x_count = 15
y_count = 15
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 20.0
max_x = 469.96000000000004
min_y = 30.0
max_y = 439.91999999999985
=======================
Extruder max_extrude_ratio=0.266081
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
webhooks client 4097816728: New connection
webhooks client 4097816728: Client info {'program': 'Moonraker', 'version': 'v0.9.3-0-g71f9e67'}
Loaded MCU 'mcu' 130 commands (v0.12.0-396-gb7233d119 / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34)
MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_sdio=PC12,PD2,PC8,PC9,PC10,PC11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 CLOCK_FREQ=180000000 MCU=stm32f446xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
mcu 'rpi': Starting connect
Loaded MCU 'rpi' 124 commands (v0.12.0-396-gb7233d119 / gcc: (Raspbian 10.2.1-6+rpi1) 10.2.1 20210110 binutils: (GNU Binutils for Raspbian) 2.35.2)
MCU 'rpi' config: ADC_MAX=4095 CLOCK_FREQ=50000000 MCU=linux PCA9685_MAX=4096 PWM_MAX=32768 STATS_SUMSQ_BASE=256
mcu 'toolboard_t0': Starting serial connect
Loaded MCU 'toolboard_t0' 118 commands (v0.12.0-396-gb7233d119 / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34)
MCU 'toolboard_t0' config: ADC_MAX=4095 BUS_PINS_i2c1_PA9_PA10=PA9,PA10 BUS_PINS_i2c1_PB6_PB7=PB6,PB7 BUS_PINS_i2c1_PB8_PB9=PB8,PB9 BUS_PINS_i2c2_PB10_PB11=PB10,PB11 BUS_PINS_i2c2_PB13_PB14=PB13,PB14 BUS_PINS_i2c3_PB3_PB4=PB3,PB4 BUS_PINS_i2c3_PC0_PC1=PC0,PC1 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2_PB2_PB11_PB10=PB2,PB11,PB10 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=64000000 MCU=stm32g0b1xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PF0,PF1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
mcu 'toolboard_t1': Starting serial connect
Loaded MCU 'toolboard_t1' 118 commands (v0.12.0-396-gb7233d119 / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34)
MCU 'toolboard_t1' config: ADC_MAX=4095 BUS_PINS_i2c1_PA9_PA10=PA9,PA10 BUS_PINS_i2c1_PB6_PB7=PB6,PB7 BUS_PINS_i2c1_PB8_PB9=PB8,PB9 BUS_PINS_i2c2_PB10_PB11=PB10,PB11 BUS_PINS_i2c2_PB13_PB14=PB13,PB14 BUS_PINS_i2c3_PB3_PB4=PB3,PB4 BUS_PINS_i2c3_PC0_PC1=PC0,PC1 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2_PB2_PB11_PB10=PB2,PB11,PB10 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=64000000 MCU=stm32g0b1xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PF0,PF1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
mcu_temperature 'mcu' nominal base=-282.098765 slope=1348.148148
mcu_temperature 'toolboard_t0' nominal base=-276.784661 slope=1328.761062
mcu_temperature 'toolboard_t1' nominal base=-267.398844 slope=1301.878613
mcu 'beacon': Starting serial connect
Loaded MCU 'beacon' 45 commands (Beacon 2.1.0 / )
MCU 'beacon' config: ADC_MAX=4095 BEACON_ACCEL_BITS=12 BEACON_ACCEL_SCALE_16G=7.81 BEACON_ACCEL_SCALE_2G=0.98 BEACON_ACCEL_SCALE_4G=1.95 BEACON_ACCEL_SCALE_8G=3.91 BEACON_ADC_SMOOTH_COUNT=16 BEACON_HAS_ACCEL=1 BEACON_REV=H CLOCK_FREQ=32000000 MCU=beacon STATS_SUMSQ_BASE=256
Sending MCU 'mcu' printer configuration...
Configured MCU 'mcu' (1024 moves)
Sending MCU 'rpi' printer configuration...
Configured MCU 'rpi' (1024 moves)
Sending MCU 'toolboard_t0' printer configuration...
Configured MCU 'toolboard_t0' (1024 moves)
Sending MCU 'toolboard_t1' printer configuration...
Configured MCU 'toolboard_t1' (1024 moves)
Starting heater checks for heater_bed
bed_mesh: generated points
Index | Tool Adjusted | Probe
0 | (20.0, 7.5) | (20.0, 30.0)
1 | (31.5, 7.5) | (31.5, 30.0)
2 | (43.1, 7.5) | (43.1, 30.0)
3 | (54.6, 7.5) | (54.6, 30.0)
4 | (66.1, 7.5) | (66.1, 30.0)
5 | (77.7, 7.5) | (77.7, 30.0)
6 | (89.2, 7.5) | (89.2, 30.0)
7 | (100.7, 7.5) | (100.7, 30.0)
8 | (112.2, 7.5) | (112.2, 30.0)
9 | (123.8, 7.5) | (123.8, 30.0)
10 | (135.3, 7.5) | (135.3, 30.0)
11 | (146.8, 7.5) | (146.8, 30.0)
12 | (158.4, 7.5) | (158.4, 30.0)
13 | (169.9, 7.5) | (169.9, 30.0)
14 | (181.4, 7.5) | (181.4, 30.0)
15 | (192.9, 7.5) | (192.9, 30.0)
16 | (204.5, 7.5) | (204.5, 30.0)
17 | (216.0, 7.5) | (216.0, 30.0)
18 | (227.5, 7.5) | (227.5, 30.0)
19 | (239.1, 7.5) | (239.1, 30.0)
20 | (250.6, 7.5) | (250.6, 30.0)
21 | (262.1, 7.5) | (262.1, 30.0)
22 | (273.7, 7.5) | (273.7, 30.0)
23 | (285.2, 7.5) | (285.2, 30.0)
24 | (296.7, 7.5) | (296.7, 30.0)
25 | (308.2, 7.5) | (308.2, 30.0)
26 | (319.8, 7.5) | (319.8, 30.0)
27 | (331.3, 7.5) | (331.3, 30.0)
28 | (342.8, 7.5) | (342.8, 30.0)
29 | (354.4, 7.5) | (354.4, 30.0)
30 | (365.9, 7.5) | (365.9, 30.0)
31 | (377.4, 7.5) | (377.4, 30.0)
32 | (389.0, 7.5) | (389.0, 30.0)
33 | (400.5, 7.5) | (400.5, 30.0)
34 | (412.0, 7.5) | (412.0, 30.0)
35 | (423.5, 7.5) | (423.5, 30.0)
36 | (435.1, 7.5) | (435.1, 30.0)
37 | (446.6, 7.5) | (446.6, 30.0)
38 | (458.1, 7.5) | (458.1, 30.0)
39 | (469.7, 7.5) | (469.7, 30.0)
40 | (469.7, 18.6) | (469.7, 41.1)
41 | (458.1, 18.6) | (458.1, 41.1)
42 | (446.6, 18.6) | (446.6, 41.1)
43 | (435.1, 18.6) | (435.1, 41.1)
44 | (423.5, 18.6) | (423.5, 41.1)
45 | (412.0, 18.6) | (412.0, 41.1)
46 | (400.5, 18.6) | (400.5, 41.1)
47 | (389.0, 18.6) | (389.0, 41.1)
48 | (377.4, 18.6) | (377.4, 41.1)
49 | (365.9, 18.6) | (365.9, 41.1)
50 | (354.4, 18.6) | (354.4, 41.1)
51 | (342.8, 18.6) | (342.8, 41.1)
52 | (331.3, 18.6) | (331.3, 41.1)
53 | (319.8, 18.6) | (319.8, 41.1)
54 | (308.2, 18.6) | (308.2, 41.1)
55 | (296.7, 18.6) | (296.7, 41.1)
56 | (285.2, 18.6) | (285.2, 41.1)
57 | (273.7, 18.6) | (273.7, 41.1)
58 | (262.1, 18.6) | (262.1, 41.1)
59 | (250.6, 18.6) | (250.6, 41.1)
60 | (239.1, 18.6) | (239.1, 41.1)
61 | (227.5, 18.6) | (227.5, 41.1)
62 | (216.0, 18.6) | (216.0, 41.1)
63 | (204.5, 18.6) | (204.5, 41.1)
64 | (192.9, 18.6) | (192.9, 41.1)
65 | (181.4, 18.6) | (181.4, 41.1)
66 | (169.9, 18.6) | (169.9, 41.1)
67 | (158.4, 18.6) | (158.4, 41.1)
68 | (146.8, 18.6) | (146.8, 41.1)
69 | (135.3, 18.6) | (135.3, 41.1)
70 | (123.8, 18.6) | (123.8, 41.1)
71 | (112.2, 18.6) | (112.2, 41.1)
72 | (100.7, 18.6) | (100.7, 41.1)
73 | (89.2, 18.6) | (89.2, 41.1)
74 | (77.6, 18.6) | (77.6, 41.1)
75 | (66.1, 18.6) | (66.1, 41.1)
76 | (54.6, 18.6) | (54.6, 41.1)
77 | (43.1, 18.6) | (43.1, 41.1)
78 | (31.5, 18.6) | (31.5, 41.1)
79 | (20.0, 18.6) | (20.0, 41.1)
80 | (20.0, 29.7) | (20.0, 52.2)
81 | (31.5, 29.7) | (31.5, 52.2)
82 | (43.1, 29.7) | (43.1, 52.2)
83 | (54.6, 29.7) | (54.6, 52.2)
84 | (66.1, 29.7) | (66.1, 52.2)
85 | (77.7, 29.7) | (77.7, 52.2)
86 | (89.2, 29.7) | (89.2, 52.2)
87 | (100.7, 29.7) | (100.7, 52.2)
88 | (112.2, 29.7) | (112.2, 52.2)
89 | (123.8, 29.7) | (123.8, 52.2)
90 | (135.3, 29.7) | (135.3, 52.2)
91 | (146.8, 29.7) | (146.8, 52.2)
92 | (158.4, 29.7) | (158.4, 52.2)
93 | (169.9, 29.7) | (169.9, 52.2)
94 | (181.4, 29.7) | (181.4, 52.2)
95 | (192.9, 29.7) | (192.9, 52.2)
96 | (204.5, 29.7) | (204.5, 52.2)
97 | (216.0, 29.7) | (216.0, 52.2)
98 | (227.5, 29.7) | (227.5, 52.2)
99 | (239.1, 29.7) | (239.1, 52.2)
100 | (250.6, 29.7) | (250.6, 52.2)
101 | (262.1, 29.7) | (262.1, 52.2)
102 | (273.7, 29.7) | (273.7, 52.2)
103 | (285.2, 29.7) | (285.2, 52.2)
104 | (296.7, 29.7) | (296.7, 52.2)
105 | (308.2, 29.7) | (308.2, 52.2)
106 | (319.8, 29.7) | (319.8, 52.2)
107 | (331.3, 29.7) | (331.3, 52.2)
108 | (342.8, 29.7) | (342.8, 52.2)
109 | (354.4, 29.7) | (354.4, 52.2)
110 | (365.9, 29.7) | (365.9, 52.2)
111 | (377.4, 29.7) | (377.4, 52.2)
112 | (389.0, 29.7) | (389.0, 52.2)
113 | (400.5, 29.7) | (400.5, 52.2)
114 | (412.0, 29.7) | (412.0, 52.2)
115 | (423.5, 29.7) | (423.5, 52.2)
116 | (435.1, 29.7) | (435.1, 52.2)
117 | (446.6, 29.7) | (446.6, 52.2)
118 | (458.1, 29.7) | (458.1, 52.2)
119 | (469.7, 29.7) | (469.7, 52.2)
120 | (469.7, 40.7) | (469.7, 63.2)
121 | (458.1, 40.7) | (458.1, 63.2)
122 | (446.6, 40.7) | (446.6, 63.2)
123 | (435.1, 40.7) | (435.1, 63.2)
124 | (423.5, 40.7) | (423.5, 63.2)
125 | (412.0, 40.7) | (412.0, 63.2)
126 | (400.5, 40.7) | (400.5, 63.2)
127 | (389.0, 40.7) | (389.0, 63.2)
128 | (377.4, 40.7) | (377.4, 63.2)
129 | (365.9, 40.7) | (365.9, 63.2)
130 | (354.4, 40.7) | (354.4, 63.2)
131 | (342.8, 40.7) | (342.8, 63.2)
132 | (331.3, 40.7) | (331.3, 63.2)
133 | (319.8, 40.7) | (319.8, 63.2)
134 | (308.2, 40.7) | (308.2, 63.2)
135 | (296.7, 40.7) | (296.7, 63.2)
136 | (285.2, 40.7) | (285.2, 63.2)
137 | (273.7, 40.7) | (273.7, 63.2)
138 | (262.1, 40.7) | (262.1, 63.2)
139 | (250.6, 40.7) | (250.6, 63.2)
140 | (239.1, 40.7) | (239.1, 63.2)
141 | (227.5, 40.7) | (227.5, 63.2)
142 | (216.0, 40.7) | (216.0, 63.2)
143 | (204.5, 40.7) | (204.5, 63.2)
144 | (192.9, 40.7) | (192.9, 63.2)
145 | (181.4, 40.7) | (181.4, 63.2)
146 | (169.9, 40.7) | (169.9, 63.2)
147 | (158.4, 40.7) | (158.4, 63.2)
148 | (146.8, 40.7) | (146.8, 63.2)
149 | (135.3, 40.7) | (135.3, 63.2)
150 | (123.8, 40.7) | (123.8, 63.2)
151 | (112.2, 40.7) | (112.2, 63.2)
152 | (100.7, 40.7) | (100.7, 63.2)
153 | (89.2, 40.7) | (89.2, 63.2)
154 | (77.6, 40.7) | (77.6, 63.2)
155 | (66.1, 40.7) | (66.1, 63.2)
156 | (54.6, 40.7) | (54.6, 63.2)
157 | (43.1, 40.7) | (43.1, 63.2)
158 | (31.5, 40.7) | (31.5, 63.2)
159 | (20.0, 40.7) | (20.0, 63.2)
160 | (20.0, 51.8) | (20.0, 74.3)
161 | (31.5, 51.8) | (31.5, 74.3)
162 | (43.1, 51.8) | (43.1, 74.3)
163 | (54.6, 51.8) | (54.6, 74.3)
164 | (66.1, 51.8) | (66.1, 74.3)
165 | (77.7, 51.8) | (77.7, 74.3)
166 | (89.2, 51.8) | (89.2, 74.3)
167 | (100.7, 51.8) | (100.7, 74.3)
168 | (112.2, 51.8) | (112.2, 74.3)
169 | (123.8, 51.8) | (123.8, 74.3)
170 | (135.3, 51.8) | (135.3, 74.3)
171 | (146.8, 51.8) | (146.8, 74.3)
172 | (158.4, 51.8) | (158.4, 74.3)
173 | (169.9, 51.8) | (169.9, 74.3)
174 | (181.4, 51.8) | (181.4, 74.3)
175 | (192.9, 51.8) | (192.9, 74.3)
176 | (204.5, 51.8) | (204.5, 74.3)
177 | (216.0, 51.8) | (216.0, 74.3)
178 | (227.5, 51.8) | (227.5, 74.3)
179 | (239.1, 51.8) | (239.1, 74.3)
180 | (250.6, 51.8) | (250.6, 74.3)
181 | (262.1, 51.8) | (262.1, 74.3)
182 | (273.7, 51.8) | (273.7, 74.3)
183 | (285.2, 51.8) | (285.2, 74.3)
184 | (296.7, 51.8) | (296.7, 74.3)
185 | (308.2, 51.8) | (308.2, 74.3)
186 | (319.8, 51.8) | (319.8, 74.3)
187 | (331.3, 51.8) | (331.3, 74.3)
188 | (342.8, 51.8) | (342.8, 74.3)
189 | (354.4, 51.8) | (354.4, 74.3)
190 | (365.9, 51.8) | (365.9, 74.3)
191 | (377.4, 51.8) | (377.4, 74.3)
192 | (389.0, 51.8) | (389.0, 74.3)
193 | (400.5, 51.8) | (400.5, 74.3)
194 | (412.0, 51.8) | (412.0, 74.3)
195 | (423.5, 51.8) | (423.5, 74.3)
196 | (435.1, 51.8) | (435.1, 74.3)
197 | (446.6, 51.8) | (446.6, 74.3)
198 | (458.1, 51.8) | (458.1, 74.3)
199 | (469.7, 51.8) | (469.7, 74.3)
200 | (469.7, 62.9) | (469.7, 85.4)
201 | (458.1, 62.9) | (458.1, 85.4)
202 | (446.6, 62.9) | (446.6, 85.4)
203 | (435.1, 62.9) | (435.1, 85.4)
204 | (423.5, 62.9) | (423.5, 85.4)
205 | (412.0, 62.9) | (412.0, 85.4)
206 | (400.5, 62.9) | (400.5, 85.4)
207 | (389.0, 62.9) | (389.0, 85.4)
208 | (377.4, 62.9) | (377.4, 85.4)
209 | (365.9, 62.9) | (365.9, 85.4)
210 | (354.4, 62.9) | (354.4, 85.4)
211 | (342.8, 62.9) | (342.8, 85.4)
212 | (331.3, 62.9) | (331.3, 85.4)
213 | (319.8, 62.9) | (319.8, 85.4)
214 | (308.2, 62.9) | (308.2, 85.4)
215 | (296.7, 62.9) | (296.7, 85.4)
216 | (285.2, 62.9) | (285.2, 85.4)
217 | (273.7, 62.9) | (273.7, 85.4)
218 | (262.1, 62.9) | (262.1, 85.4)
219 | (250.6, 62.9) | (250.6, 85.4)
220 | (239.1, 62.9) | (239.1, 85.4)
221 | (227.5, 62.9) | (227.5, 85.4)
222 | (216.0, 62.9) | (216.0, 85.4)
223 | (204.5, 62.9) | (204.5, 85.4)
224 | (192.9, 62.9) | (192.9, 85.4)
225 | (181.4, 62.9) | (181.4, 85.4)
226 | (169.9, 62.9) | (169.9, 85.4)
227 | (158.4, 62.9) | (158.4, 85.4)
228 | (146.8, 62.9) | (146.8, 85.4)
229 | (135.3, 62.9) | (135.3, 85.4)
230 | (123.8, 62.9) | (123.8, 85.4)
231 | (112.2, 62.9) | (112.2, 85.4)
232 | (100.7, 62.9) | (100.7, 85.4)
233 | (89.2, 62.9) | (89.2, 85.4)
234 | (77.6, 62.9) | (77.6, 85.4)
235 | (66.1, 62.9) | (66.1, 85.4)
236 | (54.6, 62.9) | (54.6, 85.4)
237 | (43.1, 62.9) | (43.1, 85.4)
238 | (31.5, 62.9) | (31.5, 85.4)
239 | (20.0, 62.9) | (20.0, 85.4)
240 | (20.0, 74.0) | (20.0, 96.5)
241 | (31.5, 74.0) | (31.5, 96.5)
242 | (43.1, 74.0) | (43.1, 96.5)
243 | (54.6, 74.0) | (54.6, 96.5)
244 | (66.1, 74.0) | (66.1, 96.5)
245 | (77.7, 74.0) | (77.7, 96.5)
246 | (89.2, 74.0) | (89.2, 96.5)
247 | (100.7, 74.0) | (100.7, 96.5)
248 | (112.2, 74.0) | (112.2, 96.5)
249 | (123.8, 74.0) | (123.8, 96.5)
250 | (135.3, 74.0) | (135.3, 96.5)
251 | (146.8, 74.0) | (146.8, 96.5)
252 | (158.4, 74.0) | (158.4, 96.5)
253 | (169.9, 74.0) | (169.9, 96.5)
254 | (181.4, 74.0) | (181.4, 96.5)
255 | (192.9, 74.0) | (192.9, 96.5)
256 | (204.5, 74.0) | (204.5, 96.5)
257 | (216.0, 74.0) | (216.0, 96.5)
258 | (227.5, 74.0) | (227.5, 96.5)
259 | (239.1, 74.0) | (239.1, 96.5)
260 | (250.6, 74.0) | (250.6, 96.5)
261 | (262.1, 74.0) | (262.1, 96.5)
262 | (273.7, 74.0) | (273.7, 96.5)
263 | (285.2, 74.0) | (285.2, 96.5)
264 | (296.7, 74.0) | (296.7, 96.5)
265 | (308.2, 74.0) | (308.2, 96.5)
266 | (319.8, 74.0) | (319.8, 96.5)
267 | (331.3, 74.0) | (331.3, 96.5)
268 | (342.8, 74.0) | (342.8, 96.5)
269 | (354.4, 74.0) | (354.4, 96.5)
270 | (365.9, 74.0) | (365.9, 96.5)
271 | (377.4, 74.0) | (377.4, 96.5)
272 | (389.0, 74.0) | (389.0, 96.5)
273 | (400.5, 74.0) | (400.5, 96.5)
274 | (412.0, 74.0) | (412.0, 96.5)
275 | (423.5, 74.0) | (423.5, 96.5)
276 | (435.1, 74.0) | (435.1, 96.5)
277 | (446.6, 74.0) | (446.6, 96.5)
278 | (458.1, 74.0) | (458.1, 96.5)
279 | (469.7, 74.0) | (469.7, 96.5)
280 | (469.7, 85.1) | (469.7, 107.6)
281 | (458.1, 85.1) | (458.1, 107.6)
282 | (446.6, 85.1) | (446.6, 107.6)
283 | (435.1, 85.1) | (435.1, 107.6)
284 | (423.5, 85.1) | (423.5, 107.6)
285 | (412.0, 85.1) | (412.0, 107.6)
286 | (400.5, 85.1) | (400.5, 107.6)
287 | (389.0, 85.1) | (389.0, 107.6)
288 | (377.4, 85.1) | (377.4, 107.6)
289 | (365.9, 85.1) | (365.9, 107.6)
290 | (354.4, 85.1) | (354.4, 107.6)
291 | (342.8, 85.1) | (342.8, 107.6)
292 | (331.3, 85.1) | (331.3, 107.6)
293 | (319.8, 85.1) | (319.8, 107.6)
294 | (308.2, 85.1) | (308.2, 107.6)
295 | (296.7, 85.1) | (296.7, 107.6)
296 | (285.2, 85.1) | (285.2, 107.6)
297 | (273.7, 85.1) | (273.7, 107.6)
298 | (262.1, 85.1) | (262.1, 107.6)
299 | (250.6, 85.1) | (250.6, 107.6)
300 | (239.1, 85.1) | (239.1, 107.6)
301 | (227.5, 85.1) | (227.5, 107.6)
302 | (216.0, 85.1) | (216.0, 107.6)
303 | (204.5, 85.1) | (204.5, 107.6)
304 | (192.9, 85.1) | (192.9, 107.6)
305 | (181.4, 85.1) | (181.4, 107.6)
306 | (169.9, 85.1) | (169.9, 107.6)
307 | (158.4, 85.1) | (158.4, 107.6)
308 | (146.8, 85.1) | (146.8, 107.6)
309 | (135.3, 85.1) | (135.3, 107.6)
310 | (123.8, 85.1) | (123.8, 107.6)
311 | (112.2, 85.1) | (112.2, 107.6)
312 | (100.7, 85.1) | (100.7, 107.6)
313 | (89.2, 85.1) | (89.2, 107.6)
314 | (77.6, 85.1) | (77.6, 107.6)
315 | (66.1, 85.1) | (66.1, 107.6)
316 | (54.6, 85.1) | (54.6, 107.6)
317 | (43.1, 85.1) | (43.1, 107.6)
318 | (31.5, 85.1) | (31.5, 107.6)
319 | (20.0, 85.1) | (20.0, 107.6)
320 | (20.0, 96.1) | (20.0, 118.6)
321 | (31.5, 96.1) | (31.5, 118.6)
322 | (43.1, 96.1) | (43.1, 118.6)
323 | (54.6, 96.1) | (54.6, 118.6)
324 | (66.1, 96.1) | (66.1, 118.6)
325 | (77.7, 96.1) | (77.7, 118.6)
326 | (89.2, 96.1) | (89.2, 118.6)
327 | (100.7, 96.1) | (100.7, 118.6)
328 | (112.2, 96.1) | (112.2, 118.6)
329 | (123.8, 96.1) | (123.8, 118.6)
330 | (135.3, 96.1) | (135.3, 118.6)
331 | (146.8, 96.1) | (146.8, 118.6)
332 | (158.4, 96.1) | (158.4, 118.6)
333 | (169.9, 96.1) | (169.9, 118.6)
334 | (181.4, 96.1) | (181.4, 118.6)
335 | (192.9, 96.1) | (192.9, 118.6)
336 | (204.5, 96.1) | (204.5, 118.6)
337 | (216.0, 96.1) | (216.0, 118.6)
338 | (227.5, 96.1) | (227.5, 118.6)
339 | (239.1, 96.1) | (239.1, 118.6)
340 | (250.6, 96.1) | (250.6, 118.6)
341 | (262.1, 96.1) | (262.1, 118.6)
342 | (273.7, 96.1) | (273.7, 118.6)
343 | (285.2, 96.1) | (285.2, 118.6)
344 | (296.7, 96.1) | (296.7, 118.6)
345 | (308.2, 96.1) | (308.2, 118.6)
346 | (319.8, 96.1) | (319.8, 118.6)
347 | (331.3, 96.1) | (331.3, 118.6)
348 | (342.8, 96.1) | (342.8, 118.6)
349 | (354.4, 96.1) | (354.4, 118.6)
350 | (365.9, 96.1) | (365.9, 118.6)
351 | (377.4, 96.1) | (377.4, 118.6)
352 | (389.0, 96.1) | (389.0, 118.6)
353 | (400.5, 96.1) | (400.5, 118.6)
354 | (412.0, 96.1) | (412.0, 118.6)
355 | (423.5, 96.1) | (423.5, 118.6)
356 | (435.1, 96.1) | (435.1, 118.6)
357 | (446.6, 96.1) | (446.6, 118.6)
358 | (458.1, 96.1) | (458.1, 118.6)
359 | (469.7, 96.1) | (469.7, 118.6)
360 | (469.7, 107.2) | (469.7, 129.7)
361 | (458.1, 107.2) | (458.1, 129.7)
362 | (446.6, 107.2) | (446.6, 129.7)
363 | (435.1, 107.2) | (435.1, 129.7)
364 | (423.5, 107.2) | (423.5, 129.7)
365 | (412.0, 107.2) | (412.0, 129.7)
366 | (400.5, 107.2) | (400.5, 129.7)
367 | (389.0, 107.2) | (389.0, 129.7)
368 | (377.4, 107.2) | (377.4, 129.7)
369 | (365.9, 107.2) | (365.9, 129.7)
370 | (354.4, 107.2) | (354.4, 129.7)
371 | (342.8, 107.2) | (342.8, 129.7)
372 | (331.3, 107.2) | (331.3, 129.7)
373 | (319.8, 107.2) | (319.8, 129.7)
374 | (308.2, 107.2) | (308.2, 129.7)
375 | (296.7, 107.2) | (296.7, 129.7)
376 | (285.2, 107.2) | (285.2, 129.7)
377 | (273.7, 107.2) | (273.7, 129.7)
378 | (262.1, 107.2) | (262.1, 129.7)
379 | (250.6, 107.2) | (250.6, 129.7)
380 | (239.1, 107.2) | (239.1, 129.7)
381 | (227.5, 107.2) | (227.5, 129.7)
382 | (216.0, 107.2) | (216.0, 129.7)
383 | (204.5, 107.2) | (204.5, 129.7)
384 | (192.9, 107.2) | (192.9, 129.7)
385 | (181.4, 107.2) | (181.4, 129.7)
386 | (169.9, 107.2) | (169.9, 129.7)
387 | (158.4, 107.2) | (158.4, 129.7)
388 | (146.8, 107.2) | (146.8, 129.7)
389 | (135.3, 107.2) | (135.3, 129.7)
390 | (123.8, 107.2) | (123.8, 129.7)
391 | (112.2, 107.2) | (112.2, 129.7)
392 | (100.7, 107.2) | (100.7, 129.7)
393 | (89.2, 107.2) | (89.2, 129.7)
394 | (77.6, 107.2) | (77.6, 129.7)
395 | (66.1, 107.2) | (66.1, 129.7)
396 | (54.6, 107.2) | (54.6, 129.7)
397 | (43.1, 107.2) | (43.1, 129.7)
398 | (31.5, 107.2) | (31.5, 129.7)
399 | (20.0, 107.2) | (20.0, 129.7)
400 | (20.0, 118.3) | (20.0, 140.8)
401 | (31.5, 118.3) | (31.5, 140.8)
402 | (43.1, 118.3) | (43.1, 140.8)
403 | (54.6, 118.3) | (54.6, 140.8)
404 | (66.1, 118.3) | (66.1, 140.8)
405 | (77.7, 118.3) | (77.7, 140.8)
406 | (89.2, 118.3) | (89.2, 140.8)
407 | (100.7, 118.3) | (100.7, 140.8)
408 | (112.2, 118.3) | (112.2, 140.8)
409 | (123.8, 118.3) | (123.8, 140.8)
410 | (135.3, 118.3) | (135.3, 140.8)
411 | (146.8, 118.3) | (146.8, 140.8)
412 | (158.4, 118.3) | (158.4, 140.8)
413 | (169.9, 118.3) | (169.9, 140.8)
414 | (181.4, 118.3) | (181.4, 140.8)
415 | (192.9, 118.3) | (192.9, 140.8)
416 | (204.5, 118.3) | (204.5, 140.8)
417 | (216.0, 118.3) | (216.0, 140.8)
418 | (227.5, 118.3) | (227.5, 140.8)
419 | (239.1, 118.3) | (239.1, 140.8)
420 | (250.6, 118.3) | (250.6, 140.8)
421 | (262.1, 118.3) | (262.1, 140.8)
422 | (273.7, 118.3) | (273.7, 140.8)
423 | (285.2, 118.3) | (285.2, 140.8)
424 | (296.7, 118.3) | (296.7, 140.8)
425 | (308.2, 118.3) | (308.2, 140.8)
426 | (319.8, 118.3) | (319.8, 140.8)
427 | (331.3, 118.3) | (331.3, 140.8)
428 | (342.8, 118.3) | (342.8, 140.8)
429 | (354.4, 118.3) | (354.4, 140.8)
430 | (365.9, 118.3) | (365.9, 140.8)
431 | (377.4, 118.3) | (377.4, 140.8)
432 | (389.0, 118.3) | (389.0, 140.8)
433 | (400.5, 118.3) | (400.5, 140.8)
434 | (412.0, 118.3) | (412.0, 140.8)
435 | (423.5, 118.3) | (423.5, 140.8)
436 | (435.1, 118.3) | (435.1, 140.8)
437 | (446.6, 118.3) | (446.6, 140.8)
438 | (458.1, 118.3) | (458.1, 140.8)
439 | (469.7, 118.3) | (469.7, 140.8)
440 | (469.7, 129.4) | (469.7, 151.9)
441 | (458.1, 129.4) | (458.1, 151.9)
442 | (446.6, 129.4) | (446.6, 151.9)
443 | (435.1, 129.4) | (435.1, 151.9)
444 | (423.5, 129.4) | (423.5, 151.9)
445 | (412.0, 129.4) | (412.0, 151.9)
446 | (400.5, 129.4) | (400.5, 151.9)
447 | (389.0, 129.4) | (389.0, 151.9)
448 | (377.4, 129.4) | (377.4, 151.9)
449 | (365.9, 129.4) | (365.9, 151.9)
450 | (354.4, 129.4) | (354.4, 151.9)
451 | (342.8, 129.4) | (342.8, 151.9)
452 | (331.3, 129.4) | (331.3, 151.9)
453 | (319.8, 129.4) | (319.8, 151.9)
454 | (308.2, 129.4) | (308.2, 151.9)
455 | (296.7, 129.4) | (296.7, 151.9)
456 | (285.2, 129.4) | (285.2, 151.9)
457 | (273.7, 129.4) | (273.7, 151.9)
458 | (262.1, 129.4) | (262.1, 151.9)
459 | (250.6, 129.4) | (250.6, 151.9)
460 | (239.1, 129.4) | (239.1, 151.9)
461 | (227.5, 129.4) | (227.5, 151.9)
462 | (216.0, 129.4) | (216.0, 151.9)
463 | (204.5, 129.4) | (204.5, 151.9)
464 | (192.9, 129.4) | (192.9, 151.9)
465 | (181.4, 129.4) | (181.4, 151.9)
466 | (169.9, 129.4) | (169.9, 151.9)
467 | (158.4, 129.4) | (158.4, 151.9)
468 | (146.8, 129.4) | (146.8, 151.9)
469 | (135.3, 129.4) | (135.3, 151.9)
470 | (123.8, 129.4) | (123.8, 151.9)
471 | (112.2, 129.4) | (112.2, 151.9)
472 | (100.7, 129.4) | (100.7, 151.9)
473 | (89.2, 129.4) | (89.2, 151.9)
474 | (77.6, 129.4) | (77.6, 151.9)
475 | (66.1, 129.4) | (66.1, 151.9)
476 | (54.6, 129.4) | (54.6, 151.9)
477 | (43.1, 129.4) | (43.1, 151.9)
478 | (31.5, 129.4) | (31.5, 151.9)
479 | (20.0, 129.4) | (20.0, 151.9)
480 | (20.0, 140.5) | (20.0, 163.0)
481 | (31.5, 140.5) | (31.5, 163.0)
482 | (43.1, 140.5) | (43.1, 163.0)
483 | (54.6, 140.5) | (54.6, 163.0)
484 | (66.1, 140.5) | (66.1, 163.0)
485 | (77.7, 140.5) | (77.7, 163.0)
486 | (89.2, 140.5) | (89.2, 163.0)
487 | (100.7, 140.5) | (100.7, 163.0)
488 | (112.2, 140.5) | (112.2, 163.0)
489 | (123.8, 140.5) | (123.8, 163.0)
490 | (135.3, 140.5) | (135.3, 163.0)
491 | (146.8, 140.5) | (146.8, 163.0)
492 | (158.4, 140.5) | (158.4, 163.0)
493 | (169.9, 140.5) | (169.9, 163.0)
494 | (181.4, 140.5) | (181.4, 163.0)
495 | (192.9, 140.5) | (192.9, 163.0)
496 | (204.5, 140.5) | (204.5, 163.0)
497 | (216.0, 140.5) | (216.0, 163.0)
498 | (227.5, 140.5) | (227.5, 163.0)
499 | (239.1, 140.5) | (239.1, 163.0)
500 | (250.6, 140.5) | (250.6, 163.0)
501 | (262.1, 140.5) | (262.1, 163.0)
502 | (273.7, 140.5) | (273.7, 163.0)
503 | (285.2, 140.5) | (285.2, 163.0)
504 | (296.7, 140.5) | (296.7, 163.0)
505 | (308.2, 140.5) | (308.2, 163.0)
506 | (319.8, 140.5) | (319.8, 163.0)
507 | (331.3, 140.5) | (331.3, 163.0)
508 | (342.8, 140.5) | (342.8, 163.0)
509 | (354.4, 140.5) | (354.4, 163.0)
510 | (365.9, 140.5) | (365.9, 163.0)
511 | (377.4, 140.5) | (377.4, 163.0)
512 | (389.0, 140.5) | (389.0, 163.0)
513 | (400.5, 140.5) | (400.5, 163.0)
514 | (412.0, 140.5) | (412.0, 163.0)
515 | (423.5, 140.5) | (423.5, 163.0)
516 | (435.1, 140.5) | (435.1, 163.0)
517 | (446.6, 140.5) | (446.6, 163.0)
518 | (458.1, 140.5) | (458.1, 163.0)
519 | (469.7, 140.5) | (469.7, 163.0)
520 | (469.7, 151.5) | (469.7, 174.0)
521 | (458.1, 151.5) | (458.1, 174.0)
522 | (446.6, 151.5) | (446.6, 174.0)
523 | (435.1, 151.5) | (435.1, 174.0)
524 | (423.5, 151.5) | (423.5, 174.0)
525 | (412.0, 151.5) | (412.0, 174.0)
526 | (400.5, 151.5) | (400.5, 174.0)
527 | (389.0, 151.5) | (389.0, 174.0)
528 | (377.4, 151.5) | (377.4, 174.0)
529 | (365.9, 151.5) | (365.9, 174.0)
530 | (354.4, 151.5) | (354.4, 174.0)
531 | (342.8, 151.5) | (342.8, 174.0)
532 | (331.3, 151.5) | (331.3, 174.0)
533 | (319.8, 151.5) | (319.8, 174.0)
534 | (308.2, 151.5) | (308.2, 174.0)
535 | (296.7, 151.5) | (296.7, 174.0)
536 | (285.2, 151.5) | (285.2, 174.0)
537 | (273.7, 151.5) | (273.7, 174.0)
538 | (262.1, 151.5) | (262.1, 174.0)
539 | (250.6, 151.5) | (250.6, 174.0)
540 | (239.1, 151.5) | (239.1, 174.0)
541 | (227.5, 151.5) | (227.5, 174.0)
542 | (216.0, 151.5) | (216.0, 174.0)
543 | (204.5, 151.5) | (204.5, 174.0)
544 | (192.9, 151.5) | (192.9, 174.0)
545 | (181.4, 151.5) | (181.4, 174.0)
546 | (169.9, 151.5) | (169.9, 174.0)
547 | (158.4, 151.5) | (158.4, 174.0)
548 | (146.8, 151.5) | (146.8, 174.0)
549 | (135.3, 151.5) | (135.3, 174.0)
550 | (123.8, 151.5) | (123.8, 174.0)
551 | (112.2, 151.5) | (112.2, 174.0)
552 | (100.7, 151.5) | (100.7, 174.0)
553 | (89.2, 151.5) | (89.2, 174.0)
554 | (77.6, 151.5) | (77.6, 174.0)
555 | (66.1, 151.5) | (66.1, 174.0)
556 | (54.6, 151.5) | (54.6, 174.0)
557 | (43.1, 151.5) | (43.1, 174.0)
558 | (31.5, 151.5) | (31.5, 174.0)
559 | (20.0, 151.5) | (20.0, 174.0)
560 | (20.0, 162.6) | (20.0, 185.1)
561 | (31.5, 162.6) | (31.5, 185.1)
562 | (43.1, 162.6) | (43.1, 185.1)
563 | (54.6, 162.6) | (54.6, 185.1)
564 | (66.1, 162.6) | (66.1, 185.1)
565 | (77.7, 162.6) | (77.7, 185.1)
566 | (89.2, 162.6) | (89.2, 185.1)
567 | (100.7, 162.6) | (100.7, 185.1)
568 | (112.2, 162.6) | (112.2, 185.1)
569 | (123.8, 162.6) | (123.8, 185.1)
570 | (135.3, 162.6) | (135.3, 185.1)
571 | (146.8, 162.6) | (146.8, 185.1)
572 | (158.4, 162.6) | (158.4, 185.1)
573 | (169.9, 162.6) | (169.9, 185.1)
574 | (181.4, 162.6) | (181.4, 185.1)
575 | (192.9, 162.6) | (192.9, 185.1)
576 | (204.5, 162.6) | (204.5, 185.1)
577 | (216.0, 162.6) | (216.0, 185.1)
578 | (227.5, 162.6) | (227.5, 185.1)
579 | (239.1, 162.6) | (239.1, 185.1)
580 | (250.6, 162.6) | (250.6, 185.1)
581 | (262.1, 162.6) | (262.1, 185.1)
582 | (273.7, 162.6) | (273.7, 185.1)
583 | (285.2, 162.6) | (285.2, 185.1)
584 | (296.7, 162.6) | (296.7, 185.1)
585 | (308.2, 162.6) | (308.2, 185.1)
586 | (319.8, 162.6) | (319.8, 185.1)
587 | (331.3, 162.6) | (331.3, 185.1)
588 | (342.8, 162.6) | (342.8, 185.1)
589 | (354.4, 162.6) | (354.4, 185.1)
590 | (365.9, 162.6) | (365.9, 185.1)
591 | (377.4, 162.6) | (377.4, 185.1)
592 | (389.0, 162.6) | (389.0, 185.1)
593 | (400.5, 162.6) | (400.5, 185.1)
594 | (412.0, 162.6) | (412.0, 185.1)
595 | (423.5, 162.6) | (423.5, 185.1)
596 | (435.1, 162.6) | (435.1, 185.1)
597 | (446.6, 162.6) | (446.6, 185.1)
598 | (458.1, 162.6) | (458.1, 185.1)
599 | (469.7, 162.6) | (469.7, 185.1)
600 | (469.7, 173.7) | (469.7, 196.2)
601 | (458.1, 173.7) | (458.1, 196.2)
602 | (446.6, 173.7) | (446.6, 196.2)
603 | (435.1, 173.7) | (435.1, 196.2)
604 | (423.5, 173.7) | (423.5, 196.2)
605 | (412.0, 173.7) | (412.0, 196.2)
606 | (400.5, 173.7) | (400.5, 196.2)
607 | (389.0, 173.7) | (389.0, 196.2)
608 | (377.4, 173.7) | (377.4, 196.2)
609 | (365.9, 173.7) | (365.9, 196.2)
610 | (354.4, 173.7) | (354.4, 196.2)
611 | (342.8, 173.7) | (342.8, 196.2)
612 | (331.3, 173.7) | (331.3, 196.2)
613 | (319.8, 173.7) | (319.8, 196.2)
614 | (308.2, 173.7) | (308.2, 196.2)
615 | (296.7, 173.7) | (296.7, 196.2)
616 | (285.2, 173.7) | (285.2, 196.2)
617 | (273.7, 173.7) | (273.7, 196.2)
618 | (262.1, 173.7) | (262.1, 196.2)
619 | (250.6, 173.7) | (250.6, 196.2)
620 | (239.1, 173.7) | (239.1, 196.2)
621 | (227.5, 173.7) | (227.5, 196.2)
622 | (216.0, 173.7) | (216.0, 196.2)
623 | (204.5, 173.7) | (204.5, 196.2)
624 | (192.9, 173.7) | (192.9, 196.2)
625 | (181.4, 173.7) | (181.4, 196.2)
626 | (169.9, 173.7) | (169.9, 196.2)
627 | (158.4, 173.7) | (158.4, 196.2)
628 | (146.8, 173.7) | (146.8, 196.2)
629 | (135.3, 173.7) | (135.3, 196.2)
630 | (123.8, 173.7) | (123.8, 196.2)
631 | (112.2, 173.7) | (112.2, 196.2)
632 | (100.7, 173.7) | (100.7, 196.2)
633 | (89.2, 173.7) | (89.2, 196.2)
634 | (77.6, 173.7) | (77.6, 196.2)
635 | (66.1, 173.7) | (66.1, 196.2)
636 | (54.6, 173.7) | (54.6, 196.2)
637 | (43.1, 173.7) | (43.1, 196.2)
638 | (31.5, 173.7) | (31.5, 196.2)
639 | (20.0, 173.7) | (20.0, 196.2)
640 | (20.0, 184.8) | (20.0, 207.3)
641 | (31.5, 184.8) | (31.5, 207.3)
642 | (43.1, 184.8) | (43.1, 207.3)
643 | (54.6, 184.8) | (54.6, 207.3)
644 | (66.1, 184.8) | (66.1, 207.3)
645 | (77.7, 184.8) | (77.7, 207.3)
646 | (89.2, 184.8) | (89.2, 207.3)
647 | (100.7, 184.8) | (100.7, 207.3)
648 | (112.2, 184.8) | (112.2, 207.3)
649 | (123.8, 184.8) | (123.8, 207.3)
650 | (135.3, 184.8) | (135.3, 207.3)
651 | (146.8, 184.8) | (146.8, 207.3)
652 | (158.4, 184.8) | (158.4, 207.3)
653 | (169.9, 184.8) | (169.9, 207.3)
654 | (181.4, 184.8) | (181.4, 207.3)
655 | (192.9, 184.8) | (192.9, 207.3)
656 | (204.5, 184.8) | (204.5, 207.3)
657 | (216.0, 184.8) | (216.0, 207.3)
658 | (227.5, 184.8) | (227.5, 207.3)
659 | (239.1, 184.8) | (239.1, 207.3)
660 | (250.6, 184.8) | (250.6, 207.3)
661 | (262.1, 184.8) | (262.1, 207.3)
662 | (273.7, 184.8) | (273.7, 207.3)
663 | (285.2, 184.8) | (285.2, 207.3)
664 | (296.7, 184.8) | (296.7, 207.3)
665 | (308.2, 184.8) | (308.2, 207.3)
666 | (319.8, 184.8) | (319.8, 207.3)
667 | (331.3, 184.8) | (331.3, 207.3)
668 | (342.8, 184.8) | (342.8, 207.3)
669 | (354.4, 184.8) | (354.4, 207.3)
670 | (365.9, 184.8) | (365.9, 207.3)
671 | (377.4, 184.8) | (377.4, 207.3)
672 | (389.0, 184.8) | (389.0, 207.3)
673 | (400.5, 184.8) | (400.5, 207.3)
674 | (412.0, 184.8) | (412.0, 207.3)
675 | (423.5, 184.8) | (423.5, 207.3)
676 | (435.1, 184.8) | (435.1, 207.3)
677 | (446.6, 184.8) | (446.6, 207.3)
678 | (458.1, 184.8) | (458.1, 207.3)
679 | (469.7, 184.8) | (469.7, 207.3)
680 | (469.7, 195.9) | (469.7, 218.4)
681 | (458.1, 195.9) | (458.1, 218.4)
682 | (446.6, 195.9) | (446.6, 218.4)
683 | (435.1, 195.9) | (435.1, 218.4)
684 | (423.5, 195.9) | (423.5, 218.4)
685 | (412.0, 195.9) | (412.0, 218.4)
686 | (400.5, 195.9) | (400.5, 218.4)
687 | (389.0, 195.9) | (389.0, 218.4)
688 | (377.4, 195.9) | (377.4, 218.4)
689 | (365.9, 195.9) | (365.9, 218.4)
690 | (354.4, 195.9) | (354.4, 218.4)
691 | (342.8, 195.9) | (342.8, 218.4)
692 | (331.3, 195.9) | (331.3, 218.4)
693 | (319.8, 195.9) | (319.8, 218.4)
694 | (308.2, 195.9) | (308.2, 218.4)
695 | (296.7, 195.9) | (296.7, 218.4)
696 | (285.2, 195.9) | (285.2, 218.4)
697 | (273.7, 195.9) | (273.7, 218.4)
698 | (262.1, 195.9) | (262.1, 218.4)
699 | (250.6, 195.9) | (250.6, 218.4)
700 | (239.1, 195.9) | (239.1, 218.4)
701 | (227.5, 195.9) | (227.5, 218.4)
702 | (216.0, 195.9) | (216.0, 218.4)
703 | (204.5, 195.9) | (204.5, 218.4)
704 | (192.9, 195.9) | (192.9, 218.4)
705 | (181.4, 195.9) | (181.4, 218.4)
706 | (169.9, 195.9) | (169.9, 218.4)
707 | (158.4, 195.9) | (158.4, 218.4)
708 | (146.8, 195.9) | (146.8, 218.4)
709 | (135.3, 195.9) | (135.3, 218.4)
710 | (123.8, 195.9) | (123.8, 218.4)
711 | (112.2, 195.9) | (112.2, 218.4)
712 | (100.7, 195.9) | (100.7, 218.4)
713 | (89.2, 195.9) | (89.2, 218.4)
714 | (77.6, 195.9) | (77.6, 218.4)
715 | (66.1, 195.9) | (66.1, 218.4)
716 | (54.6, 195.9) | (54.6, 218.4)
717 | (43.1, 195.9) | (43.1, 218.4)
718 | (31.5, 195.9) | (31.5, 218.4)
719 | (20.0, 195.9) | (20.0, 218.4)
720 | (20.0, 206.9) | (20.0, 229.4)
721 | (31.5, 206.9) | (31.5, 229.4)
722 | (43.1, 206.9) | (43.1, 229.4)
723 | (54.6, 206.9) | (54.6, 229.4)
724 | (66.1, 206.9) | (66.1, 229.4)
725 | (77.7, 206.9) | (77.7, 229.4)
726 | (89.2, 206.9) | (89.2, 229.4)
727 | (100.7, 206.9) | (100.7, 229.4)
728 | (112.2, 206.9) | (112.2, 229.4)
729 | (123.8, 206.9) | (123.8, 229.4)
730 | (135.3, 206.9) | (135.3, 229.4)
731 | (146.8, 206.9) | (146.8, 229.4)
732 | (158.4, 206.9) | (158.4, 229.4)
733 | (169.9, 206.9) | (169.9, 229.4)
734 | (181.4, 206.9) | (181.4, 229.4)
735 | (192.9, 206.9) | (192.9, 229.4)
736 | (204.5, 206.9) | (204.5, 229.4)
737 | (216.0, 206.9) | (216.0, 229.4)
738 | (227.5, 206.9) | (227.5, 229.4)
739 | (239.1, 206.9) | (239.1, 229.4)
740 | (250.6, 206.9) | (250.6, 229.4)
741 | (262.1, 206.9) | (262.1, 229.4)
742 | (273.7, 206.9) | (273.7, 229.4)
743 | (285.2, 206.9) | (285.2, 229.4)
744 | (296.7, 206.9) | (296.7, 229.4)
745 | (308.2, 206.9) | (308.2, 229.4)
746 | (319.8, 206.9) | (319.8, 229.4)
747 | (331.3, 206.9) | (331.3, 229.4)
748 | (342.8, 206.9) | (342.8, 229.4)
749 | (354.4, 206.9) | (354.4, 229.4)
750 | (365.9, 206.9) | (365.9, 229.4)
751 | (377.4, 206.9) | (377.4, 229.4)
752 | (389.0, 206.9) | (389.0, 229.4)
753 | (400.5, 206.9) | (400.5, 229.4)
754 | (412.0, 206.9) | (412.0, 229.4)
755 | (423.5, 206.9) | (423.5, 229.4)
756 | (435.1, 206.9) | (435.1, 229.4)
757 | (446.6, 206.9) | (446.6, 229.4)
758 | (458.1, 206.9) | (458.1, 229.4)
759 | (469.7, 206.9) | (469.7, 229.4)
760 | (469.7, 218.0) | (469.7, 240.5)
761 | (458.1, 218.0) | (458.1, 240.5)
762 | (446.6, 218.0) | (446.6, 240.5)
763 | (435.1, 218.0) | (435.1, 240.5)
764 | (423.5, 218.0) | (423.5, 240.5)
765 | (412.0, 218.0) | (412.0, 240.5)
766 | (400.5, 218.0) | (400.5, 240.5)
767 | (389.0, 218.0) | (389.0, 240.5)
768 | (377.4, 218.0) | (377.4, 240.5)
769 | (365.9, 218.0) | (365.9, 240.5)
770 | (354.4, 218.0) | (354.4, 240.5)
771 | (342.8, 218.0) | (342.8, 240.5)
772 | (331.3, 218.0) | (331.3, 240.5)
773 | (319.8, 218.0) | (319.8, 240.5)
774 | (308.2, 218.0) | (308.2, 240.5)
775 | (296.7, 218.0) | (296.7, 240.5)
776 | (285.2, 218.0) | (285.2, 240.5)
777 | (273.7, 218.0) | (273.7, 240.5)
778 | (262.1, 218.0) | (262.1, 240.5)
779 | (250.6, 218.0) | (250.6, 240.5)
780 | (239.1, 218.0) | (239.1, 240.5)
781 | (227.5, 218.0) | (227.5, 240.5)
782 | (216.0, 218.0) | (216.0, 240.5)
783 | (204.5, 218.0) | (204.5, 240.5)
784 | (192.9, 218.0) | (192.9, 240.5)
785 | (181.4, 218.0) | (181.4, 240.5)
786 | (169.9, 218.0) | (169.9, 240.5)
787 | (158.4, 218.0) | (158.4, 240.5)
788 | (146.8, 218.0) | (146.8, 240.5)
789 | (135.3, 218.0) | (135.3, 240.5)
790 | (123.8, 218.0) | (123.8, 240.5)
791 | (112.2, 218.0) | (112.2, 240.5)
792 | (100.7, 218.0) | (100.7, 240.5)
793 | (89.2, 218.0) | (89.2, 240.5)
794 | (77.6, 218.0) | (77.6, 240.5)
795 | (66.1, 218.0) | (66.1, 240.5)
796 | (54.6, 218.0) | (54.6, 240.5)
797 | (43.1, 218.0) | (43.1, 240.5)
798 | (31.5, 218.0) | (31.5, 240.5)
799 | (20.0, 218.0) | (20.0, 240.5)
800 | (20.0, 229.1) | (20.0, 251.6)
801 | (31.5, 229.1) | (31.5, 251.6)
802 | (43.1, 229.1) | (43.1, 251.6)
803 | (54.6, 229.1) | (54.6, 251.6)
804 | (66.1, 229.1) | (66.1, 251.6)
805 | (77.7, 229.1) | (77.7, 251.6)
806 | (89.2, 229.1) | (89.2, 251.6)
807 | (100.7, 229.1) | (100.7, 251.6)
808 | (112.2, 229.1) | (112.2, 251.6)
809 | (123.8, 229.1) | (123.8, 251.6)
810 | (135.3, 229.1) | (135.3, 251.6)
811 | (146.8, 229.1) | (146.8, 251.6)
812 | (158.4, 229.1) | (158.4, 251.6)
813 | (169.9, 229.1) | (169.9, 251.6)
814 | (181.4, 229.1) | (181.4, 251.6)
815 | (192.9, 229.1) | (192.9, 251.6)
816 | (204.5, 229.1) | (204.5, 251.6)
817 | (216.0, 229.1) | (216.0, 251.6)
818 | (227.5, 229.1) | (227.5, 251.6)
819 | (239.1, 229.1) | (239.1, 251.6)
820 | (250.6, 229.1) | (250.6, 251.6)
821 | (262.1, 229.1) | (262.1, 251.6)
822 | (273.7, 229.1) | (273.7, 251.6)
823 | (285.2, 229.1) | (285.2, 251.6)
824 | (296.7, 229.1) | (296.7, 251.6)
825 | (308.2, 229.1) | (308.2, 251.6)
826 | (319.8, 229.1) | (319.8, 251.6)
827 | (331.3, 229.1) | (331.3, 251.6)
828 | (342.8, 229.1) | (342.8, 251.6)
829 | (354.4, 229.1) | (354.4, 251.6)
830 | (365.9, 229.1) | (365.9, 251.6)
831 | (377.4, 229.1) | (377.4, 251.6)
832 | (389.0, 229.1) | (389.0, 251.6)
833 | (400.5, 229.1) | (400.5, 251.6)
834 | (412.0, 229.1) | (412.0, 251.6)
835 | (423.5, 229.1) | (423.5, 251.6)
836 | (435.1, 229.1) | (435.1, 251.6)
837 | (446.6, 229.1) | (446.6, 251.6)
838 | (458.1, 229.1) | (458.1, 251.6)
839 | (469.7, 229.1) | (469.7, 251.6)
840 | (469.7, 240.2) | (469.7, 262.7)
841 | (458.1, 240.2) | (458.1, 262.7)
842 | (446.6, 240.2) | (446.6, 262.7)
843 | (435.1, 240.2) | (435.1, 262.7)
844 | (423.5, 240.2) | (423.5, 262.7)
845 | (412.0, 240.2) | (412.0, 262.7)
846 | (400.5, 240.2) | (400.5, 262.7)
847 | (389.0, 240.2) | (389.0, 262.7)
848 | (377.4, 240.2) | (377.4, 262.7)
849 | (365.9, 240.2) | (365.9, 262.7)
850 | (354.4, 240.2) | (354.4, 262.7)
851 | (342.8, 240.2) | (342.8, 262.7)
852 | (331.3, 240.2) | (331.3, 262.7)
853 | (319.8, 240.2) | (319.8, 262.7)
854 | (308.2, 240.2) | (308.2, 262.7)
855 | (296.7, 240.2) | (296.7, 262.7)
856 | (285.2, 240.2) | (285.2, 262.7)
857 | (273.7, 240.2) | (273.7, 262.7)
858 | (262.1, 240.2) | (262.1, 262.7)
859 | (250.6, 240.2) | (250.6, 262.7)
860 | (239.1, 240.2) | (239.1, 262.7)
861 | (227.5, 240.2) | (227.5, 262.7)
862 | (216.0, 240.2) | (216.0, 262.7)
863 | (204.5, 240.2) | (204.5, 262.7)
864 | (192.9, 240.2) | (192.9, 262.7)
865 | (181.4, 240.2) | (181.4, 262.7)
866 | (169.9, 240.2) | (169.9, 262.7)
867 | (158.4, 240.2) | (158.4, 262.7)
868 | (146.8, 240.2) | (146.8, 262.7)
869 | (135.3, 240.2) | (135.3, 262.7)
870 | (123.8, 240.2) | (123.8, 262.7)
871 | (112.2, 240.2) | (112.2, 262.7)
872 | (100.7, 240.2) | (100.7, 262.7)
873 | (89.2, 240.2) | (89.2, 262.7)
874 | (77.6, 240.2) | (77.6, 262.7)
875 | (66.1, 240.2) | (66.1, 262.7)
876 | (54.6, 240.2) | (54.6, 262.7)
877 | (43.1, 240.2) | (43.1, 262.7)
878 | (31.5, 240.2) | (31.5, 262.7)
879 | (20.0, 240.2) | (20.0, 262.7)
880 | (20.0, 251.3) | (20.0, 273.8)
881 | (31.5, 251.3) | (31.5, 273.8)
882 | (43.1, 251.3) | (43.1, 273.8)
883 | (54.6, 251.3) | (54.6, 273.8)
884 | (66.1, 251.3) | (66.1, 273.8)
885 | (77.7, 251.3) | (77.7, 273.8)
886 | (89.2, 251.3) | (89.2, 273.8)
887 | (100.7, 251.3) | (100.7, 273.8)
888 | (112.2, 251.3) | (112.2, 273.8)
889 | (123.8, 251.3) | (123.8, 273.8)
890 | (135.3, 251.3) | (135.3, 273.8)
891 | (146.8, 251.3) | (146.8, 273.8)
892 | (158.4, 251.3) | (158.4, 273.8)
893 | (169.9, 251.3) | (169.9, 273.8)
894 | (181.4, 251.3) | (181.4, 273.8)
895 | (192.9, 251.3) | (192.9, 273.8)
896 | (204.5, 251.3) | (204.5, 273.8)
897 | (216.0, 251.3) | (216.0, 273.8)
898 | (227.5, 251.3) | (227.5, 273.8)
899 | (239.1, 251.3) | (239.1, 273.8)
900 | (250.6, 251.3) | (250.6, 273.8)
901 | (262.1, 251.3) | (262.1, 273.8)
902 | (273.7, 251.3) | (273.7, 273.8)
903 | (285.2, 251.3) | (285.2, 273.8)
904 | (296.7, 251.3) | (296.7, 273.8)
905 | (308.2, 251.3) | (308.2, 273.8)
906 | (319.8, 251.3) | (319.8, 273.8)
907 | (331.3, 251.3) | (331.3, 273.8)
908 | (342.8, 251.3) | (342.8, 273.8)
909 | (354.4, 251.3) | (354.4, 273.8)
910 | (365.9, 251.3) | (365.9, 273.8)
911 | (377.4, 251.3) | (377.4, 273.8)
912 | (389.0, 251.3) | (389.0, 273.8)
913 | (400.5, 251.3) | (400.5, 273.8)
914 | (412.0, 251.3) | (412.0, 273.8)
915 | (423.5, 251.3) | (423.5, 273.8)
916 | (435.1, 251.3) | (435.1, 273.8)
917 | (446.6, 251.3) | (446.6, 273.8)
918 | (458.1, 251.3) | (458.1, 273.8)
919 | (469.7, 251.3) | (469.7, 273.8)
920 | (469.7, 262.3) | (469.7, 284.8)
921 | (458.1, 262.3) | (458.1, 284.8)
922 | (446.6, 262.3) | (446.6, 284.8)
923 | (435.1, 262.3) | (435.1, 284.8)
924 | (423.5, 262.3) | (423.5, 284.8)
925 | (412.0, 262.3) | (412.0, 284.8)
926 | (400.5, 262.3) | (400.5, 284.8)
927 | (389.0, 262.3) | (389.0, 284.8)
928 | (377.4, 262.3) | (377.4, 284.8)
929 | (365.9, 262.3) | (365.9, 284.8)
930 | (354.4, 262.3) | (354.4, 284.8)
931 | (342.8, 262.3) | (342.8, 284.8)
932 | (331.3, 262.3) | (331.3, 284.8)
933 | (319.8, 262.3) | (319.8, 284.8)
934 | (308.2, 262.3) | (308.2, 284.8)
935 | (296.7, 262.3) | (296.7, 284.8)
936 | (285.2, 262.3) | (285.2, 284.8)
937 | (273.7, 262.3) | (273.7, 284.8)
938 | (262.1, 262.3) | (262.1, 284.8)
939 | (250.6, 262.3) | (250.6, 284.8)
940 | (239.1, 262.3) | (239.1, 284.8)
941 | (227.5, 262.3) | (227.5, 284.8)
942 | (216.0, 262.3) | (216.0, 284.8)
943 | (204.5, 262.3) | (204.5, 284.8)
944 | (192.9, 262.3) | (192.9, 284.8)
945 | (181.4, 262.3) | (181.4, 284.8)
946 | (169.9, 262.3) | (169.9, 284.8)
947 | (158.4, 262.3) | (158.4, 284.8)
948 | (146.8, 262.3) | (146.8, 284.8)
949 | (135.3, 262.3) | (135.3, 284.8)
950 | (123.8, 262.3) | (123.8, 284.8)
951 | (112.2, 262.3) | (112.2, 284.8)
952 | (100.7, 262.3) | (100.7, 284.8)
953 | (89.2, 262.3) | (89.2, 284.8)
954 | (77.6, 262.3) | (77.6, 284.8)
955 | (66.1, 262.3) | (66.1, 284.8)
956 | (54.6, 262.3) | (54.6, 284.8)
957 | (43.1, 262.3) | (43.1, 284.8)
958 | (31.5, 262.3) | (31.5, 284.8)
959 | (20.0, 262.3) | (20.0, 284.8)
960 | (20.0, 273.4) | (20.0, 295.9)
961 | (31.5, 273.4) | (31.5, 295.9)
962 | (43.1, 273.4) | (43.1, 295.9)
963 | (54.6, 273.4) | (54.6, 295.9)
964 | (66.1, 273.4) | (66.1, 295.9)
965 | (77.7, 273.4) | (77.7, 295.9)
966 | (89.2, 273.4) | (89.2, 295.9)
967 | (100.7, 273.4) | (100.7, 295.9)
968 | (112.2, 273.4) | (112.2, 295.9)
969 | (123.8, 273.4) | (123.8, 295.9)
970 | (135.3, 273.4) | (135.3, 295.9)
971 | (146.8, 273.4) | (146.8, 295.9)
972 | (158.4, 273.4) | (158.4, 295.9)
973 | (169.9, 273.4) | (169.9, 295.9)
974 | (181.4, 273.4) | (181.4, 295.9)
975 | (192.9, 273.4) | (192.9, 295.9)
976 | (204.5, 273.4) | (204.5, 295.9)
977 | (216.0, 273.4) | (216.0, 295.9)
978 | (227.5, 273.4) | (227.5, 295.9)
979 | (239.1, 273.4) | (239.1, 295.9)
980 | (250.6, 273.4) | (250.6, 295.9)
981 | (262.1, 273.4) | (262.1, 295.9)
982 | (273.7, 273.4) | (273.7, 295.9)
983 | (285.2, 273.4) | (285.2, 295.9)
984 | (296.7, 273.4) | (296.7, 295.9)
985 | (308.2, 273.4) | (308.2, 295.9)
986 | (319.8, 273.4) | (319.8, 295.9)
987 | (331.3, 273.4) | (331.3, 295.9)
988 | (342.8, 273.4) | (342.8, 295.9)
989 | (354.4, 273.4) | (354.4, 295.9)
990 | (365.9, 273.4) | (365.9, 295.9)
991 | (377.4, 273.4) | (377.4, 295.9)
992 | (389.0, 273.4) | (389.0, 295.9)
993 | (400.5, 273.4) | (400.5, 295.9)
994 | (412.0, 273.4) | (412.0, 295.9)
995 | (423.5, 273.4) | (423.5, 295.9)
996 | (435.1, 273.4) | (435.1, 295.9)
997 | (446.6, 273.4) | (446.6, 295.9)
998 | (458.1, 273.4) | (458.1, 295.9)
999 | (469.7, 273.4) | (469.7, 295.9)
1000| (469.7, 284.5) | (469.7, 307.0)
1001| (458.1, 284.5) | (458.1, 307.0)
1002| (446.6, 284.5) | (446.6, 307.0)
1003| (435.1, 284.5) | (435.1, 307.0)
1004| (423.5, 284.5) | (423.5, 307.0)
1005| (412.0, 284.5) | (412.0, 307.0)
1006| (400.5, 284.5) | (400.5, 307.0)
1007| (389.0, 284.5) | (389.0, 307.0)
1008| (377.4, 284.5) | (377.4, 307.0)
1009| (365.9, 284.5) | (365.9, 307.0)
1010| (354.4, 284.5) | (354.4, 307.0)
1011| (342.8, 284.5) | (342.8, 307.0)
1012| (331.3, 284.5) | (331.3, 307.0)
1013| (319.8, 284.5) | (319.8, 307.0)
1014| (308.2, 284.5) | (308.2, 307.0)
1015| (296.7, 284.5) | (296.7, 307.0)
1016| (285.2, 284.5) | (285.2, 307.0)
1017| (273.7, 284.5) | (273.7, 307.0)
1018| (262.1, 284.5) | (262.1, 307.0)
1019| (250.6, 284.5) | (250.6, 307.0)
1020| (239.1, 284.5) | (239.1, 307.0)
1021| (227.5, 284.5) | (227.5, 307.0)
1022| (216.0, 284.5) | (216.0, 307.0)
1023| (204.5, 284.5) | (204.5, 307.0)
1024| (192.9, 284.5) | (192.9, 307.0)
1025| (181.4, 284.5) | (181.4, 307.0)
1026| (169.9, 284.5) | (169.9, 307.0)
1027| (158.4, 284.5) | (158.4, 307.0)
1028| (146.8, 284.5) | (146.8, 307.0)
1029| (135.3, 284.5) | (135.3, 307.0)
1030| (123.8, 284.5) | (123.8, 307.0)
1031| (112.2, 284.5) | (112.2, 307.0)
1032| (100.7, 284.5) | (100.7, 307.0)
1033| (89.2, 284.5) | (89.2, 307.0)
1034| (77.6, 284.5) | (77.6, 307.0)
1035| (66.1, 284.5) | (66.1, 307.0)
1036| (54.6, 284.5) | (54.6, 307.0)
1037| (43.1, 284.5) | (43.1, 307.0)
1038| (31.5, 284.5) | (31.5, 307.0)
1039| (20.0, 284.5) | (20.0, 307.0)
1040| (20.0, 295.6) | (20.0, 318.1)
1041| (31.5, 295.6) | (31.5, 318.1)
1042| (43.1, 295.6) | (43.1, 318.1)
1043| (54.6, 295.6) | (54.6, 318.1)
1044| (66.1, 295.6) | (66.1, 318.1)
1045| (77.7, 295.6) | (77.7, 318.1)
1046| (89.2, 295.6) | (89.2, 318.1)
1047| (100.7, 295.6) | (100.7, 318.1)
1048| (112.2, 295.6) | (112.2, 318.1)
1049| (123.8, 295.6) | (123.8, 318.1)
1050| (135.3, 295.6) | (135.3, 318.1)
1051| (146.8, 295.6) | (146.8, 318.1)
1052| (158.4, 295.6) | (158.4, 318.1)
1053| (169.9, 295.6) | (169.9, 318.1)
1054| (181.4, 295.6) | (181.4, 318.1)
1055| (192.9, 295.6) | (192.9, 318.1)
1056| (204.5, 295.6) | (204.5, 318.1)
1057| (216.0, 295.6) | (216.0, 318.1)
1058| (227.5, 295.6) | (227.5, 318.1)
1059| (239.1, 295.6) | (239.1, 318.1)
1060| (250.6, 295.6) | (250.6, 318.1)
1061| (262.1, 295.6) | (262.1, 318.1)
1062| (273.7, 295.6) | (273.7, 318.1)
1063| (285.2, 295.6) | (285.2, 318.1)
1064| (296.7, 295.6) | (296.7, 318.1)
1065| (308.2, 295.6) | (308.2, 318.1)
1066| (319.8, 295.6) | (319.8, 318.1)
1067| (331.3, 295.6) | (331.3, 318.1)
1068| (342.8, 295.6) | (342.8, 318.1)
1069| (354.4, 295.6) | (354.4, 318.1)
1070| (365.9, 295.6) | (365.9, 318.1)
1071| (377.4, 295.6) | (377.4, 318.1)
1072| (389.0, 295.6) | (389.0, 318.1)
1073| (400.5, 295.6) | (400.5, 318.1)
1074| (412.0, 295.6) | (412.0, 318.1)
1075| (423.5, 295.6) | (423.5, 318.1)
1076| (435.1, 295.6) | (435.1, 318.1)
1077| (446.6, 295.6) | (446.6, 318.1)
1078| (458.1, 295.6) | (458.1, 318.1)
1079| (469.7, 295.6) | (469.7, 318.1)
1080| (469.7, 306.7) | (469.7, 329.2)
1081| (458.1, 306.7) | (458.1, 329.2)
1082| (446.6, 306.7) | (446.6, 329.2)
1083| (435.1, 306.7) | (435.1, 329.2)
1084| (423.5, 306.7) | (423.5, 329.2)
1085| (412.0, 306.7) | (412.0, 329.2)
1086| (400.5, 306.7) | (400.5, 329.2)
1087| (389.0, 306.7) | (389.0, 329.2)
1088| (377.4, 306.7) | (377.4, 329.2)
1089| (365.9, 306.7) | (365.9, 329.2)
1090| (354.4, 306.7) | (354.4, 329.2)
1091| (342.8, 306.7) | (342.8, 329.2)
1092| (331.3, 306.7) | (331.3, 329.2)
1093| (319.8, 306.7) | (319.8, 329.2)
1094| (308.2, 306.7) | (308.2, 329.2)
1095| (296.7, 306.7) | (296.7, 329.2)
1096| (285.2, 306.7) | (285.2, 329.2)
1097| (273.7, 306.7) | (273.7, 329.2)
1098| (262.1, 306.7) | (262.1, 329.2)
1099| (250.6, 306.7) | (250.6, 329.2)
1100| (239.1, 306.7) | (239.1, 329.2)
1101| (227.5, 306.7) | (227.5, 329.2)
1102| (216.0, 306.7) | (216.0, 329.2)
1103| (204.5, 306.7) | (204.5, 329.2)
1104| (192.9, 306.7) | (192.9, 329.2)
1105| (181.4, 306.7) | (181.4, 329.2)
1106| (169.9, 306.7) | (169.9, 329.2)
1107| (158.4, 306.7) | (158.4, 329.2)
1108| (146.8, 306.7) | (146.8, 329.2)
1109| (135.3, 306.7) | (135.3, 329.2)
1110| (123.8, 306.7) | (123.8, 329.2)
1111| (112.2, 306.7) | (112.2, 329.2)
1112| (100.7, 306.7) | (100.7, 329.2)
1113| (89.2, 306.7) | (89.2, 329.2)
1114| (77.6, 306.7) | (77.6, 329.2)
1115| (66.1, 306.7) | (66.1, 329.2)
1116| (54.6, 306.7) | (54.6, 329.2)
1117| (43.1, 306.7) | (43.1, 329.2)
1118| (31.5, 306.7) | (31.5, 329.2)
1119| (20.0, 306.7) | (20.0, 329.2)
1120| (20.0, 317.7) | (20.0, 340.2)
1121| (31.5, 317.7) | (31.5, 340.2)
1122| (43.1, 317.7) | (43.1, 340.2)
1123| (54.6, 317.7) | (54.6, 340.2)
1124| (66.1, 317.7) | (66.1, 340.2)
1125| (77.7, 317.7) | (77.7, 340.2)
1126| (89.2, 317.7) | (89.2, 340.2)
1127| (100.7, 317.7) | (100.7, 340.2)
1128| (112.2, 317.7) | (112.2, 340.2)
1129| (123.8, 317.7) | (123.8, 340.2)
1130| (135.3, 317.7) | (135.3, 340.2)
1131| (146.8, 317.7) | (146.8, 340.2)
1132| (158.4, 317.7) | (158.4, 340.2)
1133| (169.9, 317.7) | (169.9, 340.2)
1134| (181.4, 317.7) | (181.4, 340.2)
1135| (192.9, 317.7) | (192.9, 340.2)
1136| (204.5, 317.7) | (204.5, 340.2)
1137| (216.0, 317.7) | (216.0, 340.2)
1138| (227.5, 317.7) | (227.5, 340.2)
1139| (239.1, 317.7) | (239.1, 340.2)
1140| (250.6, 317.7) | (250.6, 340.2)
1141| (262.1, 317.7) | (262.1, 340.2)
1142| (273.7, 317.7) | (273.7, 340.2)
1143| (285.2, 317.7) | (285.2, 340.2)
1144| (296.7, 317.7) | (296.7, 340.2)
1145| (308.2, 317.7) | (308.2, 340.2)
1146| (319.8, 317.7) | (319.8, 340.2)
1147| (331.3, 317.7) | (331.3, 340.2)
1148| (342.8, 317.7) | (342.8, 340.2)
1149| (354.4, 317.7) | (354.4, 340.2)
1150| (365.9, 317.7) | (365.9, 340.2)
1151| (377.4, 317.7) | (377.4, 340.2)
1152| (389.0, 317.7) | (389.0, 340.2)
1153| (400.5, 317.7) | (400.5, 340.2)
1154| (412.0, 317.7) | (412.0, 340.2)
1155| (423.5, 317.7) | (423.5, 340.2)
1156| (435.1, 317.7) | (435.1, 340.2)
1157| (446.6, 317.7) | (446.6, 340.2)
1158| (458.1, 317.7) | (458.1, 340.2)
1159| (469.7, 317.7) | (469.7, 340.2)
1160| (469.7, 328.8) | (469.7, 351.3)
1161| (458.1, 328.8) | (458.1, 351.3)
1162| (446.6, 328.8) | (446.6, 351.3)
1163| (435.1, 328.8) | (435.1, 351.3)
1164| (423.5, 328.8) | (423.5, 351.3)
1165| (412.0, 328.8) | (412.0, 351.3)
1166| (400.5, 328.8) | (400.5, 351.3)
1167| (389.0, 328.8) | (389.0, 351.3)
1168| (377.4, 328.8) | (377.4, 351.3)
1169| (365.9, 328.8) | (365.9, 351.3)
1170| (354.4, 328.8) | (354.4, 351.3)
1171| (342.8, 328.8) | (342.8, 351.3)
1172| (331.3, 328.8) | (331.3, 351.3)
1173| (319.8, 328.8) | (319.8, 351.3)
1174| (308.2, 328.8) | (308.2, 351.3)
1175| (296.7, 328.8) | (296.7, 351.3)
1176| (285.2, 328.8) | (285.2, 351.3)
1177| (273.7, 328.8) | (273.7, 351.3)
1178| (262.1, 328.8) | (262.1, 351.3)
1179| (250.6, 328.8) | (250.6, 351.3)
1180| (239.1, 328.8) | (239.1, 351.3)
1181| (227.5, 328.8) | (227.5, 351.3)
1182| (216.0, 328.8) | (216.0, 351.3)
1183| (204.5, 328.8) | (204.5, 351.3)
1184| (192.9, 328.8) | (192.9, 351.3)
1185| (181.4, 328.8) | (181.4, 351.3)
1186| (169.9, 328.8) | (169.9, 351.3)
1187| (158.4, 328.8) | (158.4, 351.3)
1188| (146.8, 328.8) | (146.8, 351.3)
1189| (135.3, 328.8) | (135.3, 351.3)
1190| (123.8, 328.8) | (123.8, 351.3)
1191| (112.2, 328.8) | (112.2, 351.3)
1192| (100.7, 328.8) | (100.7, 351.3)
1193| (89.2, 328.8) | (89.2, 351.3)
1194| (77.6, 328.8) | (77.6, 351.3)
1195| (66.1, 328.8) | (66.1, 351.3)
1196| (54.6, 328.8) | (54.6, 351.3)
1197| (43.1, 328.8) | (43.1, 351.3)
1198| (31.5, 328.8) | (31.5, 351.3)
1199| (20.0, 328.8) | (20.0, 351.3)
1200| (20.0, 339.9) | (20.0, 362.4)
1201| (31.5, 339.9) | (31.5, 362.4)
1202| (43.1, 339.9) | (43.1, 362.4)
1203| (54.6, 339.9) | (54.6, 362.4)
1204| (66.1, 339.9) | (66.1, 362.4)
1205| (77.7, 339.9) | (77.7, 362.4)
1206| (89.2, 339.9) | (89.2, 362.4)
1207| (100.7, 339.9) | (100.7, 362.4)
1208| (112.2, 339.9) | (112.2, 362.4)
1209| (123.8, 339.9) | (123.8, 362.4)
1210| (135.3, 339.9) | (135.3, 362.4)
1211| (146.8, 339.9) | (146.8, 362.4)
1212| (158.4, 339.9) | (158.4, 362.4)
1213| (169.9, 339.9) | (169.9, 362.4)
1214| (181.4, 339.9) | (181.4, 362.4)
1215| (192.9, 339.9) | (192.9, 362.4)
1216| (204.5, 339.9) | (204.5, 362.4)
1217| (216.0, 339.9) | (216.0, 362.4)
1218| (227.5, 339.9) | (227.5, 362.4)
1219| (239.1, 339.9) | (239.1, 362.4)
1220| (250.6, 339.9) | (250.6, 362.4)
1221| (262.1, 339.9) | (262.1, 362.4)
1222| (273.7, 339.9) | (273.7, 362.4)
1223| (285.2, 339.9) | (285.2, 362.4)
1224| (296.7, 339.9) | (296.7, 362.4)
1225| (308.2, 339.9) | (308.2, 362.4)
1226| (319.8, 339.9) | (319.8, 362.4)
1227| (331.3, 339.9) | (331.3, 362.4)
1228| (342.8, 339.9) | (342.8, 362.4)
1229| (354.4, 339.9) | (354.4, 362.4)
1230| (365.9, 339.9) | (365.9, 362.4)
1231| (377.4, 339.9) | (377.4, 362.4)
1232| (389.0, 339.9) | (389.0, 362.4)
1233| (400.5, 339.9) | (400.5, 362.4)
1234| (412.0, 339.9) | (412.0, 362.4)
1235| (423.5, 339.9) | (423.5, 362.4)
1236| (435.1, 339.9) | (435.1, 362.4)
1237| (446.6, 339.9) | (446.6, 362.4)
1238| (458.1, 339.9) | (458.1, 362.4)
1239| (469.7, 339.9) | (469.7, 362.4)
1240| (469.7, 351.0) | (469.7, 373.5)
1241| (458.1, 351.0) | (458.1, 373.5)
1242| (446.6, 351.0) | (446.6, 373.5)
1243| (435.1, 351.0) | (435.1, 373.5)
1244| (423.5, 351.0) | (423.5, 373.5)
1245| (412.0, 351.0) | (412.0, 373.5)
1246| (400.5, 351.0) | (400.5, 373.5)
1247| (389.0, 351.0) | (389.0, 373.5)
1248| (377.4, 351.0) | (377.4, 373.5)
1249| (365.9, 351.0) | (365.9, 373.5)
1250| (354.4, 351.0) | (354.4, 373.5)
1251| (342.8, 351.0) | (342.8, 373.5)
1252| (331.3, 351.0) | (331.3, 373.5)
1253| (319.8, 351.0) | (319.8, 373.5)
1254| (308.2, 351.0) | (308.2, 373.5)
1255| (296.7, 351.0) | (296.7, 373.5)
1256| (285.2, 351.0) | (285.2, 373.5)
1257| (273.7, 351.0) | (273.7, 373.5)
1258| (262.1, 351.0) | (262.1, 373.5)
1259| (250.6, 351.0) | (250.6, 373.5)
1260| (239.1, 351.0) | (239.1, 373.5)
1261| (227.5, 351.0) | (227.5, 373.5)
1262| (216.0, 351.0) | (216.0, 373.5)
1263| (204.5, 351.0) | (204.5, 373.5)
1264| (192.9, 351.0) | (192.9, 373.5)
1265| (181.4, 351.0) | (181.4, 373.5)
1266| (169.9, 351.0) | (169.9, 373.5)
1267| (158.4, 351.0) | (158.4, 373.5)
1268| (146.8, 351.0) | (146.8, 373.5)
1269| (135.3, 351.0) | (135.3, 373.5)
1270| (123.8, 351.0) | (123.8, 373.5)
1271| (112.2, 351.0) | (112.2, 373.5)
1272| (100.7, 351.0) | (100.7, 373.5)
1273| (89.2, 351.0) | (89.2, 373.5)
1274| (77.6, 351.0) | (77.6, 373.5)
1275| (66.1, 351.0) | (66.1, 373.5)
1276| (54.6, 351.0) | (54.6, 373.5)
1277| (43.1, 351.0) | (43.1, 373.5)
1278| (31.5, 351.0) | (31.5, 373.5)
1279| (20.0, 351.0) | (20.0, 373.5)
1280| (20.0, 362.1) | (20.0, 384.6)
1281| (31.5, 362.1) | (31.5, 384.6)
1282| (43.1, 362.1) | (43.1, 384.6)
1283| (54.6, 362.1) | (54.6, 384.6)
1284| (66.1, 362.1) | (66.1, 384.6)
1285| (77.7, 362.1) | (77.7, 384.6)
1286| (89.2, 362.1) | (89.2, 384.6)
1287| (100.7, 362.1) | (100.7, 384.6)
1288| (112.2, 362.1) | (112.2, 384.6)
1289| (123.8, 362.1) | (123.8, 384.6)
1290| (135.3, 362.1) | (135.3, 384.6)
1291| (146.8, 362.1) | (146.8, 384.6)
1292| (158.4, 362.1) | (158.4, 384.6)
1293| (169.9, 362.1) | (169.9, 384.6)
1294| (181.4, 362.1) | (181.4, 384.6)
1295| (192.9, 362.1) | (192.9, 384.6)
1296| (204.5, 362.1) | (204.5, 384.6)
1297| (216.0, 362.1) | (216.0, 384.6)
1298| (227.5, 362.1) | (227.5, 384.6)
1299| (239.1, 362.1) | (239.1, 384.6)
1300| (250.6, 362.1) | (250.6, 384.6)
1301| (262.1, 362.1) | (262.1, 384.6)
1302| (273.7, 362.1) | (273.7, 384.6)
1303| (285.2, 362.1) | (285.2, 384.6)
1304| (296.7, 362.1) | (296.7, 384.6)
1305| (308.2, 362.1) | (308.2, 384.6)
1306| (319.8, 362.1) | (319.8, 384.6)
1307| (331.3, 362.1) | (331.3, 384.6)
1308| (342.8, 362.1) | (342.8, 384.6)
1309| (354.4, 362.1) | (354.4, 384.6)
1310| (365.9, 362.1) | (365.9, 384.6)
1311| (377.4, 362.1) | (377.4, 384.6)
1312| (389.0, 362.1) | (389.0, 384.6)
1313| (400.5, 362.1) | (400.5, 384.6)
1314| (412.0, 362.1) | (412.0, 384.6)
1315| (423.5, 362.1) | (423.5, 384.6)
1316| (435.1, 362.1) | (435.1, 384.6)
1317| (446.6, 362.1) | (446.6, 384.6)
1318| (458.1, 362.1) | (458.1, 384.6)
1319| (469.7, 362.1) | (469.7, 384.6)
1320| (469.7, 373.1) | (469.7, 395.6)
1321| (458.1, 373.1) | (458.1, 395.6)
1322| (446.6, 373.1) | (446.6, 395.6)
1323| (435.1, 373.1) | (435.1, 395.6)
1324| (423.5, 373.1) | (423.5, 395.6)
1325| (412.0, 373.1) | (412.0, 395.6)
1326| (400.5, 373.1) | (400.5, 395.6)
1327| (389.0, 373.1) | (389.0, 395.6)
1328| (377.4, 373.1) | (377.4, 395.6)
1329| (365.9, 373.1) | (365.9, 395.6)
1330| (354.4, 373.1) | (354.4, 395.6)
1331| (342.8, 373.1) | (342.8, 395.6)
1332| (331.3, 373.1) | (331.3, 395.6)
1333| (319.8, 373.1) | (319.8, 395.6)
1334| (308.2, 373.1) | (308.2, 395.6)
1335| (296.7, 373.1) | (296.7, 395.6)
1336| (285.2, 373.1) | (285.2, 395.6)
1337| (273.7, 373.1) | (273.7, 395.6)
1338| (262.1, 373.1) | (262.1, 395.6)
1339| (250.6, 373.1) | (250.6, 395.6)
1340| (239.1, 373.1) | (239.1, 395.6)
1341| (227.5, 373.1) | (227.5, 395.6)
1342| (216.0, 373.1) | (216.0, 395.6)
1343| (204.5, 373.1) | (204.5, 395.6)
1344| (192.9, 373.1) | (192.9, 395.6)
1345| (181.4, 373.1) | (181.4, 395.6)
1346| (169.9, 373.1) | (169.9, 395.6)
1347| (158.4, 373.1) | (158.4, 395.6)
1348| (146.8, 373.1) | (146.8, 395.6)
1349| (135.3, 373.1) | (135.3, 395.6)
1350| (123.8, 373.1) | (123.8, 395.6)
1351| (112.2, 373.1) | (112.2, 395.6)
1352| (100.7, 373.1) | (100.7, 395.6)
1353| (89.2, 373.1) | (89.2, 395.6)
1354| (77.6, 373.1) | (77.6, 395.6)
1355| (66.1, 373.1) | (66.1, 395.6)
1356| (54.6, 373.1) | (54.6, 395.6)
1357| (43.1, 373.1) | (43.1, 395.6)
1358| (31.5, 373.1) | (31.5, 395.6)
1359| (20.0, 373.1) | (20.0, 395.6)
1360| (20.0, 384.2) | (20.0, 406.7)
1361| (31.5, 384.2) | (31.5, 406.7)
1362| (43.1, 384.2) | (43.1, 406.7)
1363| (54.6, 384.2) | (54.6, 406.7)
1364| (66.1, 384.2) | (66.1, 406.7)
1365| (77.7, 384.2) | (77.7, 406.7)
1366| (89.2, 384.2) | (89.2, 406.7)
1367| (100.7, 384.2) | (100.7, 406.7)
1368| (112.2, 384.2) | (112.2, 406.7)
1369| (123.8, 384.2) | (123.8, 406.7)
1370| (135.3, 384.2) | (135.3, 406.7)
1371| (146.8, 384.2) | (146.8, 406.7)
1372| (158.4, 384.2) | (158.4, 406.7)
1373| (169.9, 384.2) | (169.9, 406.7)
1374| (181.4, 384.2) | (181.4, 406.7)
1375| (192.9, 384.2) | (192.9, 406.7)
1376| (204.5, 384.2) | (204.5, 406.7)
1377| (216.0, 384.2) | (216.0, 406.7)
1378| (227.5, 384.2) | (227.5, 406.7)
1379| (239.1, 384.2) | (239.1, 406.7)
1380| (250.6, 384.2) | (250.6, 406.7)
1381| (262.1, 384.2) | (262.1, 406.7)
1382| (273.7, 384.2) | (273.7, 406.7)
1383| (285.2, 384.2) | (285.2, 406.7)
1384| (296.7, 384.2) | (296.7, 406.7)
1385| (308.2, 384.2) | (308.2, 406.7)
1386| (319.8, 384.2) | (319.8, 406.7)
1387| (331.3, 384.2) | (331.3, 406.7)
1388| (342.8, 384.2) | (342.8, 406.7)
1389| (354.4, 384.2) | (354.4, 406.7)
1390| (365.9, 384.2) | (365.9, 406.7)
1391| (377.4, 384.2) | (377.4, 406.7)
1392| (389.0, 384.2) | (389.0, 406.7)
1393| (400.5, 384.2) | (400.5, 406.7)
1394| (412.0, 384.2) | (412.0, 406.7)
1395| (423.5, 384.2) | (423.5, 406.7)
1396| (435.1, 384.2) | (435.1, 406.7)
1397| (446.6, 384.2) | (446.6, 406.7)
1398| (458.1, 384.2) | (458.1, 406.7)
1399| (469.7, 384.2) | (469.7, 406.7)
1400| (469.7, 395.3) | (469.7, 417.8)
1401| (458.1, 395.3) | (458.1, 417.8)
1402| (446.6, 395.3) | (446.6, 417.8)
1403| (435.1, 395.3) | (435.1, 417.8)
1404| (423.5, 395.3) | (423.5, 417.8)
1405| (412.0, 395.3) | (412.0, 417.8)
1406| (400.5, 395.3) | (400.5, 417.8)
1407| (389.0, 395.3) | (389.0, 417.8)
1408| (377.4, 395.3) | (377.4, 417.8)
1409| (365.9, 395.3) | (365.9, 417.8)
1410| (354.4, 395.3) | (354.4, 417.8)
1411| (342.8, 395.3) | (342.8, 417.8)
1412| (331.3, 395.3) | (331.3, 417.8)
1413| (319.8, 395.3) | (319.8, 417.8)
1414| (308.2, 395.3) | (308.2, 417.8)
1415| (296.7, 395.3) | (296.7, 417.8)
1416| (285.2, 395.3) | (285.2, 417.8)
1417| (273.7, 395.3) | (273.7, 417.8)
1418| (262.1, 395.3) | (262.1, 417.8)
1419| (250.6, 395.3) | (250.6, 417.8)
1420| (239.1, 395.3) | (239.1, 417.8)
1421| (227.5, 395.3) | (227.5, 417.8)
1422| (216.0, 395.3) | (216.0, 417.8)
1423| (204.5, 395.3) | (204.5, 417.8)
1424| (192.9, 395.3) | (192.9, 417.8)
1425| (181.4, 395.3) | (181.4, 417.8)
1426| (169.9, 395.3) | (169.9, 417.8)
1427| (158.4, 395.3) | (158.4, 417.8)
1428| (146.8, 395.3) | (146.8, 417.8)
1429| (135.3, 395.3) | (135.3, 417.8)
1430| (123.8, 395.3) | (123.8, 417.8)
1431| (112.2, 395.3) | (112.2, 417.8)
1432| (100.7, 395.3) | (100.7, 417.8)
1433| (89.2, 395.3) | (89.2, 417.8)
1434| (77.6, 395.3) | (77.6, 417.8)
1435| (66.1, 395.3) | (66.1, 417.8)
1436| (54.6, 395.3) | (54.6, 417.8)
1437| (43.1, 395.3) | (43.1, 417.8)
1438| (31.5, 395.3) | (31.5, 417.8)
1439| (20.0, 395.3) | (20.0, 417.8)
1440| (20.0, 406.4) | (20.0, 428.9)
1441| (31.5, 406.4) | (31.5, 428.9)
1442| (43.1, 406.4) | (43.1, 428.9)
1443| (54.6, 406.4) | (54.6, 428.9)
1444| (66.1, 406.4) | (66.1, 428.9)
1445| (77.7, 406.4) | (77.7, 428.9)
1446| (89.2, 406.4) | (89.2, 428.9)
1447| (100.7, 406.4) | (100.7, 428.9)
1448| (112.2, 406.4) | (112.2, 428.9)
1449| (123.8, 406.4) | (123.8, 428.9)
1450| (135.3, 406.4) | (135.3, 428.9)
1451| (146.8, 406.4) | (146.8, 428.9)
1452| (158.4, 406.4) | (158.4, 428.9)
1453| (169.9, 406.4) | (169.9, 428.9)
1454| (181.4, 406.4) | (181.4, 428.9)
1455| (192.9, 406.4) | (192.9, 428.9)
1456| (204.5, 406.4) | (204.5, 428.9)
1457| (216.0, 406.4) | (216.0, 428.9)
1458| (227.5, 406.4) | (227.5, 428.9)
1459| (239.1, 406.4) | (239.1, 428.9)
1460| (250.6, 406.4) | (250.6, 428.9)
1461| (262.1, 406.4) | (262.1, 428.9)
1462| (273.7, 406.4) | (273.7, 428.9)
1463| (285.2, 406.4) | (285.2, 428.9)
1464| (296.7, 406.4) | (296.7, 428.9)
1465| (308.2, 406.4) | (308.2, 428.9)
1466| (319.8, 406.4) | (319.8, 428.9)
1467| (331.3, 406.4) | (331.3, 428.9)
1468| (342.8, 406.4) | (342.8, 428.9)
1469| (354.4, 406.4) | (354.4, 428.9)
1470| (365.9, 406.4) | (365.9, 428.9)
1471| (377.4, 406.4) | (377.4, 428.9)
1472| (389.0, 406.4) | (389.0, 428.9)
1473| (400.5, 406.4) | (400.5, 428.9)
1474| (412.0, 406.4) | (412.0, 428.9)
1475| (423.5, 406.4) | (423.5, 428.9)
1476| (435.1, 406.4) | (435.1, 428.9)
1477| (446.6, 406.4) | (446.6, 428.9)
1478| (458.1, 406.4) | (458.1, 428.9)
1479| (469.7, 406.4) | (469.7, 428.9)
1480| (469.7, 417.5) | (469.7, 440.0)
1481| (458.1, 417.5) | (458.1, 440.0)
1482| (446.6, 417.5) | (446.6, 440.0)
1483| (435.1, 417.5) | (435.1, 440.0)
1484| (423.5, 417.5) | (423.5, 440.0)
1485| (412.0, 417.5) | (412.0, 440.0)
1486| (400.5, 417.5) | (400.5, 440.0)
1487| (389.0, 417.5) | (389.0, 440.0)
1488| (377.4, 417.5) | (377.4, 440.0)
1489| (365.9, 417.5) | (365.9, 440.0)
1490| (354.4, 417.5) | (354.4, 440.0)
1491| (342.8, 417.5) | (342.8, 440.0)
1492| (331.3, 417.5) | (331.3, 440.0)
1493| (319.8, 417.5) | (319.8, 440.0)
1494| (308.2, 417.5) | (308.2, 440.0)
1495| (296.7, 417.5) | (296.7, 440.0)
1496| (285.2, 417.5) | (285.2, 440.0)
1497| (273.7, 417.5) | (273.7, 440.0)
1498| (262.1, 417.5) | (262.1, 440.0)
1499| (250.6, 417.5) | (250.6, 440.0)
1500| (239.1, 417.5) | (239.1, 440.0)
1501| (227.5, 417.5) | (227.5, 440.0)
1502| (216.0, 417.5) | (216.0, 440.0)
1503| (204.5, 417.5) | (204.5, 440.0)
1504| (192.9, 417.5) | (192.9, 440.0)
1505| (181.4, 417.5) | (181.4, 440.0)
1506| (169.9, 417.5) | (169.9, 440.0)
1507| (158.4, 417.5) | (158.4, 440.0)
1508| (146.8, 417.5) | (146.8, 440.0)
1509| (135.3, 417.5) | (135.3, 440.0)
1510| (123.8, 417.5) | (123.8, 440.0)
1511| (112.2, 417.5) | (112.2, 440.0)
1512| (100.7, 417.5) | (100.7, 440.0)
1513| (89.2, 417.5) | (89.2, 440.0)
1514| (77.6, 417.5) | (77.6, 440.0)
1515| (66.1, 417.5) | (66.1, 440.0)
1516| (54.6, 417.5) | (54.6, 440.0)
1517| (43.1, 417.5) | (43.1, 440.0)
1518| (31.5, 417.5) | (31.5, 440.0)
1519| (20.0, 417.5) | (20.0, 440.0)
1520| (20.0, 428.5) | (20.0, 451.0)
1521| (31.5, 428.5) | (31.5, 451.0)
1522| (43.1, 428.5) | (43.1, 451.0)
1523| (54.6, 428.5) | (54.6, 451.0)
1524| (66.1, 428.5) | (66.1, 451.0)
1525| (77.7, 428.5) | (77.7, 451.0)
1526| (89.2, 428.5) | (89.2, 451.0)
1527| (100.7, 428.5) | (100.7, 451.0)
1528| (112.2, 428.5) | (112.2, 451.0)
1529| (123.8, 428.5) | (123.8, 451.0)
1530| (135.3, 428.5) | (135.3, 451.0)
1531| (146.8, 428.5) | (146.8, 451.0)
1532| (158.4, 428.5) | (158.4, 451.0)
1533| (169.9, 428.5) | (169.9, 451.0)
1534| (181.4, 428.5) | (181.4, 451.0)
1535| (192.9, 428.5) | (192.9, 451.0)
1536| (204.5, 428.5) | (204.5, 451.0)
1537| (216.0, 428.5) | (216.0, 451.0)
1538| (227.5, 428.5) | (227.5, 451.0)
1539| (239.1, 428.5) | (239.1, 451.0)
1540| (250.6, 428.5) | (250.6, 451.0)
1541| (262.1, 428.5) | (262.1, 451.0)
1542| (273.7, 428.5) | (273.7, 451.0)
1543| (285.2, 428.5) | (285.2, 451.0)
1544| (296.7, 428.5) | (296.7, 451.0)
1545| (308.2, 428.5) | (308.2, 451.0)
1546| (319.8, 428.5) | (319.8, 451.0)
1547| (331.3, 428.5) | (331.3, 451.0)
1548| (342.8, 428.5) | (342.8, 451.0)
1549| (354.4, 428.5) | (354.4, 451.0)
1550| (365.9, 428.5) | (365.9, 451.0)
1551| (377.4, 428.5) | (377.4, 451.0)
1552| (389.0, 428.5) | (389.0, 451.0)
1553| (400.5, 428.5) | (400.5, 451.0)
1554| (412.0, 428.5) | (412.0, 451.0)
1555| (423.5, 428.5) | (423.5, 451.0)
1556| (435.1, 428.5) | (435.1, 451.0)
1557| (446.6, 428.5) | (446.6, 451.0)
1558| (458.1, 428.5) | (458.1, 451.0)
1559| (469.7, 428.5) | (469.7, 451.0)
1560| (469.7, 439.6) | (469.7, 462.1)
1561| (458.1, 439.6) | (458.1, 462.1)
1562| (446.6, 439.6) | (446.6, 462.1)
1563| (435.1, 439.6) | (435.1, 462.1)
1564| (423.5, 439.6) | (423.5, 462.1)
1565| (412.0, 439.6) | (412.0, 462.1)
1566| (400.5, 439.6) | (400.5, 462.1)
1567| (389.0, 439.6) | (389.0, 462.1)
1568| (377.4, 439.6) | (377.4, 462.1)
1569| (365.9, 439.6) | (365.9, 462.1)
1570| (354.4, 439.6) | (354.4, 462.1)
1571| (342.8, 439.6) | (342.8, 462.1)
1572| (331.3, 439.6) | (331.3, 462.1)
1573| (319.8, 439.6) | (319.8, 462.1)
1574| (308.2, 439.6) | (308.2, 462.1)
1575| (296.7, 439.6) | (296.7, 462.1)
1576| (285.2, 439.6) | (285.2, 462.1)
1577| (273.7, 439.6) | (273.7, 462.1)
1578| (262.1, 439.6) | (262.1, 462.1)
1579| (250.6, 439.6) | (250.6, 462.1)
1580| (239.1, 439.6) | (239.1, 462.1)
1581| (227.5, 439.6) | (227.5, 462.1)
1582| (216.0, 439.6) | (216.0, 462.1)
1583| (204.5, 439.6) | (204.5, 462.1)
1584| (192.9, 439.6) | (192.9, 462.1)
1585| (181.4, 439.6) | (181.4, 462.1)
1586| (169.9, 439.6) | (169.9, 462.1)
1587| (158.4, 439.6) | (158.4, 462.1)
1588| (146.8, 439.6) | (146.8, 462.1)
1589| (135.3, 439.6) | (135.3, 462.1)
1590| (123.8, 439.6) | (123.8, 462.1)
1591| (112.2, 439.6) | (112.2, 462.1)
1592| (100.7, 439.6) | (100.7, 462.1)
1593| (89.2, 439.6) | (89.2, 462.1)
1594| (77.6, 439.6) | (77.6, 462.1)
1595| (66.1, 439.6) | (66.1, 462.1)
1596| (54.6, 439.6) | (54.6, 462.1)
1597| (43.1, 439.6) | (43.1, 462.1)
1598| (31.5, 439.6) | (31.5, 462.1)
1599| (20.0, 439.6) | (20.0, 462.1)
beacon: loaded fnorm=5119941.73 temp=21.31 amfg=1.094 from nvm
beacon: built tempco model version 1 {'amfg': 1.0942302943460085, 'tcc': -8.24122690331772e-06, 'tcfl': -0.0006189559222567538, 'tctl': 0.0018844460836795654, 'fmin': 5119941.733777523, 'fmin_temp': 21.306076049804688}
Enabling Beacon accelerometer
Selected Beacon accelerometer scale 16g
Sending MCU 'beacon' printer configuration...
Configured MCU 'beacon' (0 moves)
Starting heater checks for extruder
Starting heater checks for extruder1
Stats 163.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=4044 bytes_read=7918 bytes_retransmit=9 bytes_invalid=0 send_seq=330 receive_seq=330 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=179999904 rpi: mcu_awake=0.003 mcu_task_avg=0.000020 mcu_task_stddev=0.000014 bytes_write=907 bytes_read=4874 bytes_retransmit=0 bytes_invalid=0 send_seq=121 receive_seq=121 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999563 adj=49994019 toolboard_t0: mcu_awake=0.009 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1474 bytes_read=5016 bytes_retransmit=9 bytes_invalid=0 send_seq=154 receive_seq=154 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63998147 adj=63979312 toolboard_t1: mcu_awake=0.008 mcu_task_avg=0.000022 mcu_task_stddev=0.000021 bytes_write=1503 bytes_read=5035 bytes_retransmit=9 bytes_invalid=0 send_seq=160 receive_seq=160 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999203 adj=63998770 Octopus_V1.1_F446: temp=0.0 EBB42_v1.2_T0: temp=0.0 EBB42_v1.2_T1: temp=0.0 raspberry_pi: temp=46.3 heater_bed: target=0 temp=0.0 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=380 bytes_read=2104 bytes_retransmit=0 bytes_invalid=0 send_seq=62 receive_seq=62 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32002193 adj=32000885 coil_temp=29.3 refs=0 mcu_temp=29.85 supply_voltage=3.026 sysload=2.20 cputime=17.106 memavail=418960 print_time=10.099 buffer_time=0.263 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 extruder1: target=0 temp=0.0 pwm=0.000
toolhead: max_velocity: 36000.000000
max_accel: 8000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
Extruder extruder already active
Extruder 'extruder' now syncing with 'extruder'
Extruder 'extruder1' now syncing with 'extruder1'
shaper_type_x:mzv shaper_freq_x:0.000 damping_ratio_x:0.100000
shaper_type_y:mzv shaper_freq_y:0.000 damping_ratio_y:0.100000
toolhead: max_velocity: 800.000000
max_accel: 10000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
webhooks: registering remote method 'shutdown_machine' for connection id: 4097816728
webhooks: registering remote method 'reboot_machine' for connection id: 4097816728
webhooks: registering remote method 'pause_job_queue' for connection id: 4097816728
webhooks: registering remote method 'start_job_queue' for connection id: 4097816728
Stats 164.9: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000008 mcu_task_stddev=0.000009 bytes_write=4050 bytes_read=8007 bytes_retransmit=9 bytes_invalid=0 send_seq=331 receive_seq=331 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000161 rpi: mcu_awake=0.003 mcu_task_avg=0.000020 mcu_task_stddev=0.000014 bytes_write=913 bytes_read=4890 bytes_retransmit=0 bytes_invalid=0 send_seq=122 receive_seq=122 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=49999924 adj=50004837 toolboard_t0: mcu_awake=0.009 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1488 bytes_read=5131 bytes_retransmit=9 bytes_invalid=0 send_seq=156 receive_seq=156 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63998736 adj=64012233 toolboard_t1: mcu_awake=0.008 mcu_task_avg=0.000022 mcu_task_stddev=0.000021 bytes_write=1517 bytes_read=5150 bytes_retransmit=9 bytes_invalid=0 send_seq=162 receive_seq=162 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999470 adj=63999731 Octopus_V1.1_F446: temp=33.7 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.2 raspberry_pi: temp=47.2 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=386 bytes_read=2460 bytes_retransmit=0 bytes_invalid=0 send_seq=63 receive_seq=63 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000883 adj=32002842 coil_temp=29.3 refs=0 mcu_temp=29.81 supply_voltage=3.026 sysload=2.20 cputime=17.305 memavail=416484 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 166.4: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000008 mcu_task_stddev=0.000009 bytes_write=4062 bytes_read=8213 bytes_retransmit=9 bytes_invalid=0 send_seq=333 receive_seq=333 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000685 rpi: mcu_awake=0.003 mcu_task_avg=0.000020 mcu_task_stddev=0.000014 bytes_write=925 bytes_read=4922 bytes_retransmit=0 bytes_invalid=0 send_seq=124 receive_seq=124 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000338 adj=50004451 toolboard_t0: mcu_awake=0.009 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1494 bytes_read=5287 bytes_retransmit=9 bytes_invalid=0 send_seq=157 receive_seq=157 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63998862 adj=64010538 toolboard_t1: mcu_awake=0.008 mcu_task_avg=0.000022 mcu_task_stddev=0.000021 bytes_write=1529 bytes_read=5322 bytes_retransmit=9 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999984 adj=63999909 Octopus_V1.1_F446: temp=33.9 EBB42_v1.2_T0: temp=31.5 EBB42_v1.2_T1: temp=32.4 raspberry_pi: temp=47.2 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=392 bytes_read=3004 bytes_retransmit=0 bytes_invalid=0 send_seq=64 receive_seq=64 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000244 adj=32000519 coil_temp=29.3 refs=0 mcu_temp=29.78 supply_voltage=3.026 sysload=2.02 cputime=17.434 memavail=414232 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 167.4: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000008 mcu_task_stddev=0.000009 bytes_write=4068 bytes_read=8316 bytes_retransmit=9 bytes_invalid=0 send_seq=334 receive_seq=334 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180001054 rpi: mcu_awake=0.003 mcu_task_avg=0.000020 mcu_task_stddev=0.000014 bytes_write=931 bytes_read=4938 bytes_retransmit=0 bytes_invalid=0 send_seq=125 receive_seq=125 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000195 adj=50003340 toolboard_t0: mcu_awake=0.009 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1500 bytes_read=5401 bytes_retransmit=9 bytes_invalid=0 send_seq=158 receive_seq=158 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999019 adj=64005823 toolboard_t1: mcu_awake=0.008 mcu_task_avg=0.000022 mcu_task_stddev=0.000021 bytes_write=1535 bytes_read=5436 bytes_retransmit=9 bytes_invalid=0 send_seq=165 receive_seq=165 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999888 adj=64000344 Octopus_V1.1_F446: temp=34.0 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.5 raspberry_pi: temp=47.2 heater_bed: target=0 temp=29.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=398 bytes_read=3360 bytes_retransmit=0 bytes_invalid=0 send_seq=65 receive_seq=65 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000135 adj=31999146 coil_temp=29.3 refs=0 mcu_temp=29.75 supply_voltage=3.026 sysload=2.02 cputime=17.462 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 168.4: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000008 mcu_task_stddev=0.000009 bytes_write=4074 bytes_read=8419 bytes_retransmit=9 bytes_invalid=0 send_seq=335 receive_seq=335 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000875 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=937 bytes_read=4967 bytes_retransmit=0 bytes_invalid=0 send_seq=126 receive_seq=126 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000094 adj=50001879 toolboard_t0: mcu_awake=0.006 mcu_task_avg=0.000019 mcu_task_stddev=0.000032 bytes_write=1506 bytes_read=5530 bytes_retransmit=9 bytes_invalid=0 send_seq=159 receive_seq=159 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999129 adj=64004056 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000018 mcu_task_stddev=0.000027 bytes_write=1541 bytes_read=5565 bytes_retransmit=9 bytes_invalid=0 send_seq=166 receive_seq=166 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999853 adj=63999605 Octopus_V1.1_F446: temp=34.0 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=404 bytes_read=3716 bytes_retransmit=0 bytes_invalid=0 send_seq=66 receive_seq=66 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000228 adj=31998968 coil_temp=29.3 refs=0 mcu_temp=29.74 supply_voltage=3.026 sysload=2.02 cputime=17.489 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 169.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4080 bytes_read=8565 bytes_retransmit=9 bytes_invalid=0 send_seq=336 receive_seq=336 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180001064 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=943 bytes_read=4983 bytes_retransmit=0 bytes_invalid=0 send_seq=127 receive_seq=127 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000230 adj=50001243 toolboard_t0: mcu_awake=0.006 mcu_task_avg=0.000019 mcu_task_stddev=0.000032 bytes_write=1512 bytes_read=5630 bytes_retransmit=9 bytes_invalid=0 send_seq=160 receive_seq=160 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999256 adj=64003196 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000018 mcu_task_stddev=0.000027 bytes_write=1547 bytes_read=5665 bytes_retransmit=9 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999909 adj=63999682 Octopus_V1.1_F446: temp=34.0 EBB42_v1.2_T0: temp=31.5 EBB42_v1.2_T1: temp=32.2 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=410 bytes_read=4072 bytes_retransmit=0 bytes_invalid=0 send_seq=67 receive_seq=67 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000161 adj=31999536 coil_temp=29.3 refs=0 mcu_temp=29.72 supply_voltage=3.026 sysload=2.02 cputime=17.535 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 170.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4086 bytes_read=8668 bytes_retransmit=9 bytes_invalid=0 send_seq=337 receive_seq=337 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180001037 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=949 bytes_read=4999 bytes_retransmit=0 bytes_invalid=0 send_seq=128 receive_seq=128 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000293 adj=50001148 toolboard_t0: mcu_awake=0.006 mcu_task_avg=0.000019 mcu_task_stddev=0.000032 bytes_write=1524 bytes_read=5760 bytes_retransmit=9 bytes_invalid=0 send_seq=162 receive_seq=162 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999518 adj=64002260 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000018 mcu_task_stddev=0.000027 bytes_write=1553 bytes_read=5779 bytes_retransmit=9 bytes_invalid=0 send_seq=168 receive_seq=168 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999955 adj=63999588 Octopus_V1.1_F446: temp=34.0 EBB42_v1.2_T0: temp=31.4 EBB42_v1.2_T1: temp=32.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=416 bytes_read=4428 bytes_retransmit=0 bytes_invalid=0 send_seq=68 receive_seq=68 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000118 adj=31999383 coil_temp=29.3 refs=0 mcu_temp=29.72 supply_voltage=3.026 sysload=1.86 cputime=17.598 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 171.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4092 bytes_read=8771 bytes_retransmit=9 bytes_invalid=0 send_seq=338 receive_seq=338 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180001077 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=955 bytes_read=5015 bytes_retransmit=0 bytes_invalid=0 send_seq=129 receive_seq=129 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000436 adj=50001082 toolboard_t0: mcu_awake=0.006 mcu_task_avg=0.000019 mcu_task_stddev=0.000032 bytes_write=1530 bytes_read=5874 bytes_retransmit=9 bytes_invalid=0 send_seq=163 receive_seq=163 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999553 adj=64002289 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000018 mcu_task_stddev=0.000027 bytes_write=1559 bytes_read=5893 bytes_retransmit=9 bytes_invalid=0 send_seq=169 receive_seq=169 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999958 adj=63999749 Octopus_V1.1_F446: temp=34.1 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.5 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=422 bytes_read=4784 bytes_retransmit=0 bytes_invalid=0 send_seq=69 receive_seq=69 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000084 adj=31999421 coil_temp=29.3 refs=0 mcu_temp=29.73 supply_voltage=3.026 sysload=1.86 cputime=17.658 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 172.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4098 bytes_read=8903 bytes_retransmit=9 bytes_invalid=0 send_seq=339 receive_seq=339 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180001039 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=961 bytes_read=5031 bytes_retransmit=0 bytes_invalid=0 send_seq=130 receive_seq=130 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000535 adj=50001280 toolboard_t0: mcu_awake=0.006 mcu_task_avg=0.000019 mcu_task_stddev=0.000032 bytes_write=1536 bytes_read=5974 bytes_retransmit=9 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999587 adj=64001569 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000018 mcu_task_stddev=0.000027 bytes_write=1565 bytes_read=5993 bytes_retransmit=9 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999958 adj=63999664 Octopus_V1.1_F446: temp=34.0 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.4 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=428 bytes_read=5140 bytes_retransmit=0 bytes_invalid=0 send_seq=70 receive_seq=70 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000057 adj=31999415 coil_temp=29.3 refs=0 mcu_temp=29.74 supply_voltage=3.026 sysload=1.86 cputime=17.717 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 173.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4104 bytes_read=9006 bytes_retransmit=9 bytes_invalid=0 send_seq=340 receive_seq=340 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180001004 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000022 bytes_write=967 bytes_read=5060 bytes_retransmit=0 bytes_invalid=0 send_seq=131 receive_seq=131 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000510 adj=50001413 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1542 bytes_read=6102 bytes_retransmit=9 bytes_invalid=0 send_seq=165 receive_seq=165 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999641 adj=64001145 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1571 bytes_read=6121 bytes_retransmit=9 bytes_invalid=0 send_seq=171 receive_seq=171 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999962 adj=63999695 Octopus_V1.1_F446: temp=34.3 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=434 bytes_read=5496 bytes_retransmit=0 bytes_invalid=0 send_seq=71 receive_seq=71 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000029 adj=31999469 coil_temp=29.3 refs=0 mcu_temp=29.75 supply_voltage=3.026 sysload=1.86 cputime=17.798 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 174.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4110 bytes_read=9123 bytes_retransmit=9 bytes_invalid=0 send_seq=341 receive_seq=341 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180001016 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000022 bytes_write=973 bytes_read=5076 bytes_retransmit=0 bytes_invalid=0 send_seq=132 receive_seq=132 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000454 adj=50001060 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1548 bytes_read=6216 bytes_retransmit=9 bytes_invalid=0 send_seq=166 receive_seq=166 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999670 adj=64000922 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1577 bytes_read=6235 bytes_retransmit=9 bytes_invalid=0 send_seq=172 receive_seq=172 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999964 adj=63999735 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.5 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=440 bytes_read=5852 bytes_retransmit=0 bytes_invalid=0 send_seq=72 receive_seq=72 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=32000005 adj=31999495 coil_temp=29.3 refs=0 mcu_temp=29.76 supply_voltage=3.026 sysload=1.86 cputime=17.861 memavail=414248 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 175.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4116 bytes_read=9255 bytes_retransmit=9 bytes_invalid=0 send_seq=342 receive_seq=342 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000990 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000022 bytes_write=979 bytes_read=5092 bytes_retransmit=0 bytes_invalid=0 send_seq=133 receive_seq=133 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000414 adj=50000603 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1554 bytes_read=6316 bytes_retransmit=9 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999685 adj=64000614 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1583 bytes_read=6335 bytes_retransmit=9 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999958 adj=63999692 Octopus_V1.1_F446: temp=34.1 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=446 bytes_read=6208 bytes_retransmit=0 bytes_invalid=0 send_seq=73 receive_seq=73 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999982 adj=31999483 coil_temp=29.3 refs=0 mcu_temp=29.78 supply_voltage=3.026 sysload=1.71 cputime=17.920 memavail=414448 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 176.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4122 bytes_read=9358 bytes_retransmit=9 bytes_invalid=0 send_seq=343 receive_seq=343 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000963 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000022 bytes_write=985 bytes_read=5108 bytes_retransmit=0 bytes_invalid=0 send_seq=134 receive_seq=134 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000462 adj=50000347 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1560 bytes_read=6430 bytes_retransmit=9 bytes_invalid=0 send_seq=168 receive_seq=168 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999714 adj=64000392 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1589 bytes_read=6449 bytes_retransmit=9 bytes_invalid=0 send_seq=174 receive_seq=174 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999956 adj=63999686 Octopus_V1.1_F446: temp=34.1 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=452 bytes_read=6564 bytes_retransmit=0 bytes_invalid=0 send_seq=74 receive_seq=74 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999961 adj=31999499 coil_temp=29.3 refs=0 mcu_temp=29.80 supply_voltage=3.026 sysload=1.71 cputime=17.977 memavail=414528 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.5 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 177.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4128 bytes_read=9461 bytes_retransmit=9 bytes_invalid=0 send_seq=344 receive_seq=344 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000962 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000022 bytes_write=991 bytes_read=5124 bytes_retransmit=0 bytes_invalid=0 send_seq=135 receive_seq=135 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000454 adj=50000554 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1566 bytes_read=6544 bytes_retransmit=9 bytes_invalid=0 send_seq=169 receive_seq=169 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999743 adj=64000305 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1595 bytes_read=6563 bytes_retransmit=9 bytes_invalid=0 send_seq=175 receive_seq=175 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999965 adj=63999702 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.9 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=458 bytes_read=6920 bytes_retransmit=0 bytes_invalid=0 send_seq=75 receive_seq=75 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999940 adj=31999507 coil_temp=29.3 refs=0 mcu_temp=29.82 supply_voltage=3.026 sysload=1.71 cputime=18.038 memavail=414532 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 178.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4134 bytes_read=9584 bytes_retransmit=9 bytes_invalid=0 send_seq=345 receive_seq=345 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000889 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000026 bytes_write=997 bytes_read=5153 bytes_retransmit=0 bytes_invalid=0 send_seq=136 receive_seq=136 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000420 adj=50000430 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1572 bytes_read=6658 bytes_retransmit=9 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999736 adj=64000208 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1601 bytes_read=6677 bytes_retransmit=9 bytes_invalid=0 send_seq=176 receive_seq=176 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999944 adj=63999721 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.4 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=464 bytes_read=7276 bytes_retransmit=0 bytes_invalid=0 send_seq=76 receive_seq=76 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999926 adj=31999485 coil_temp=29.3 refs=0 mcu_temp=29.83 supply_voltage=3.026 sysload=1.71 cputime=18.075 memavail=418256 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 179.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4140 bytes_read=9699 bytes_retransmit=9 bytes_invalid=0 send_seq=346 receive_seq=346 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000835 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000026 bytes_write=1003 bytes_read=5169 bytes_retransmit=0 bytes_invalid=0 send_seq=137 receive_seq=137 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000397 adj=50000299 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1578 bytes_read=6772 bytes_retransmit=9 bytes_invalid=0 send_seq=171 receive_seq=171 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999732 adj=64000103 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1607 bytes_read=6791 bytes_retransmit=9 bytes_invalid=0 send_seq=177 receive_seq=177 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999933 adj=63999729 Octopus_V1.1_F446: temp=34.1 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.5 raspberry_pi: temp=43.3 heater_bed: target=0 temp=29.5 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=470 bytes_read=7632 bytes_retransmit=0 bytes_invalid=0 send_seq=77 receive_seq=77 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999905 adj=31999559 coil_temp=29.3 refs=0 mcu_temp=29.85 supply_voltage=3.026 sysload=1.71 cputime=18.101 memavail=418344 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 180.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4146 bytes_read=9802 bytes_retransmit=9 bytes_invalid=0 send_seq=347 receive_seq=347 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000792 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000026 bytes_write=1009 bytes_read=5185 bytes_retransmit=0 bytes_invalid=0 send_seq=138 receive_seq=138 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000341 adj=50000228 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1584 bytes_read=6886 bytes_retransmit=9 bytes_invalid=0 send_seq=172 receive_seq=172 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999732 adj=64000015 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1613 bytes_read=6905 bytes_retransmit=9 bytes_invalid=0 send_seq=178 receive_seq=178 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999922 adj=63999754 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=476 bytes_read=7988 bytes_retransmit=0 bytes_invalid=0 send_seq=78 receive_seq=78 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999884 adj=31999560 coil_temp=29.3 refs=0 mcu_temp=29.87 supply_voltage=3.026 sysload=1.57 cputime=18.128 memavail=418344 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 181.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4152 bytes_read=9934 bytes_retransmit=9 bytes_invalid=0 send_seq=348 receive_seq=348 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000751 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000026 bytes_write=1015 bytes_read=5201 bytes_retransmit=0 bytes_invalid=0 send_seq=139 receive_seq=139 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000285 adj=49999976 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1590 bytes_read=6986 bytes_retransmit=9 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999736 adj=63999952 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1619 bytes_read=7005 bytes_retransmit=9 bytes_invalid=0 send_seq=179 receive_seq=179 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999912 adj=63999751 Octopus_V1.1_F446: temp=34.1 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=482 bytes_read=8344 bytes_retransmit=0 bytes_invalid=0 send_seq=79 receive_seq=79 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999876 adj=31999546 coil_temp=29.3 refs=0 mcu_temp=29.89 supply_voltage=3.026 sysload=1.57 cputime=18.154 memavail=418344 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 182.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4158 bytes_read=10037 bytes_retransmit=9 bytes_invalid=0 send_seq=349 receive_seq=349 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000723 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000026 bytes_write=1021 bytes_read=5217 bytes_retransmit=0 bytes_invalid=0 send_seq=140 receive_seq=140 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000246 adj=49999761 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1596 bytes_read=7100 bytes_retransmit=9 bytes_invalid=0 send_seq=174 receive_seq=174 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999740 adj=63999931 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1625 bytes_read=7119 bytes_retransmit=9 bytes_invalid=0 send_seq=180 receive_seq=180 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999919 adj=63999755 Octopus_V1.1_F446: temp=34.1 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=488 bytes_read=8700 bytes_retransmit=0 bytes_invalid=0 send_seq=80 receive_seq=80 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999866 adj=31999593 coil_temp=29.3 refs=0 mcu_temp=29.92 supply_voltage=3.026 sysload=1.57 cputime=18.180 memavail=418344 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 183.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4164 bytes_read=10140 bytes_retransmit=9 bytes_invalid=0 send_seq=350 receive_seq=350 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000736 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000019 bytes_write=1027 bytes_read=5246 bytes_retransmit=0 bytes_invalid=0 send_seq=141 receive_seq=141 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000239 adj=49999659 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1602 bytes_read=7228 bytes_retransmit=9 bytes_invalid=0 send_seq=175 receive_seq=175 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999769 adj=63999899 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1631 bytes_read=7247 bytes_retransmit=9 bytes_invalid=0 send_seq=181 receive_seq=181 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999924 adj=63999823 Octopus_V1.1_F446: temp=34.1 EBB42_v1.2_T0: temp=31.9 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=494 bytes_read=9056 bytes_retransmit=0 bytes_invalid=0 send_seq=81 receive_seq=81 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999861 adj=31999607 coil_temp=29.4 refs=0 mcu_temp=29.94 supply_voltage=3.026 sysload=1.57 cputime=18.235 memavail=418344 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 184.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4170 bytes_read=10286 bytes_retransmit=9 bytes_invalid=0 send_seq=351 receive_seq=351 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000741 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000019 bytes_write=1033 bytes_read=5262 bytes_retransmit=0 bytes_invalid=0 send_seq=142 receive_seq=142 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000232 adj=49999688 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1608 bytes_read=7328 bytes_retransmit=9 bytes_invalid=0 send_seq=176 receive_seq=176 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999781 adj=63999937 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1637 bytes_read=7347 bytes_retransmit=9 bytes_invalid=0 send_seq=182 receive_seq=182 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=63999785 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.5 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=500 bytes_read=9412 bytes_retransmit=0 bytes_invalid=0 send_seq=82 receive_seq=82 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999862 adj=31999594 coil_temp=29.4 refs=0 mcu_temp=29.96 supply_voltage=3.026 sysload=1.57 cputime=18.298 memavail=418352 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 185.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4176 bytes_read=10389 bytes_retransmit=9 bytes_invalid=0 send_seq=352 receive_seq=352 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000747 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000019 bytes_write=1039 bytes_read=5278 bytes_retransmit=0 bytes_invalid=0 send_seq=143 receive_seq=143 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000224 adj=49999722 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1614 bytes_read=7442 bytes_retransmit=9 bytes_invalid=0 send_seq=177 receive_seq=177 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999796 adj=63999891 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1643 bytes_read=7461 bytes_retransmit=9 bytes_invalid=0 send_seq=183 receive_seq=183 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=63999771 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.4 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=506 bytes_read=9768 bytes_retransmit=0 bytes_invalid=0 send_seq=83 receive_seq=83 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999864 adj=31999631 coil_temp=29.4 refs=0 mcu_temp=29.98 supply_voltage=3.026 sysload=1.45 cputime=18.361 memavail=418352 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 186.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4182 bytes_read=10492 bytes_retransmit=9 bytes_invalid=0 send_seq=353 receive_seq=353 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000751 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000019 bytes_write=1045 bytes_read=5294 bytes_retransmit=0 bytes_invalid=0 send_seq=144 receive_seq=144 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000215 adj=49999740 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1620 bytes_read=7556 bytes_retransmit=9 bytes_invalid=0 send_seq=178 receive_seq=178 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999833 adj=63999876 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1649 bytes_read=7575 bytes_retransmit=9 bytes_invalid=0 send_seq=184 receive_seq=184 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999931 adj=63999735 Octopus_V1.1_F446: temp=34.5 EBB42_v1.2_T0: temp=31.6 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=43.8 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=518 bytes_read=10140 bytes_retransmit=0 bytes_invalid=0 send_seq=85 receive_seq=85 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999864 adj=31999663 coil_temp=29.4 refs=0 mcu_temp=30.00 supply_voltage=3.026 sysload=1.45 cputime=18.425 memavail=418352 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 187.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4188 bytes_read=10624 bytes_retransmit=9 bytes_invalid=0 send_seq=354 receive_seq=354 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000759 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000019 bytes_write=1051 bytes_read=5310 bytes_retransmit=0 bytes_invalid=0 send_seq=145 receive_seq=145 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000280 adj=49999744 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1626 bytes_read=7656 bytes_retransmit=9 bytes_invalid=0 send_seq=179 receive_seq=179 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999839 adj=64000019 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1655 bytes_read=7675 bytes_retransmit=9 bytes_invalid=0 send_seq=185 receive_seq=185 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999932 adj=63999717 Octopus_V1.1_F446: temp=34.3 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=43.8 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=524 bytes_read=10496 bytes_retransmit=0 bytes_invalid=0 send_seq=86 receive_seq=86 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999862 adj=31999670 coil_temp=29.4 refs=0 mcu_temp=30.02 supply_voltage=3.026 sysload=1.45 cputime=18.487 memavail=417868 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 188.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4194 bytes_read=10727 bytes_retransmit=9 bytes_invalid=0 send_seq=355 receive_seq=355 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000788 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000021 bytes_write=1057 bytes_read=5339 bytes_retransmit=0 bytes_invalid=0 send_seq=146 receive_seq=146 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000287 adj=50000231 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1632 bytes_read=7784 bytes_retransmit=9 bytes_invalid=0 send_seq=180 receive_seq=180 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999843 adj=63999924 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1661 bytes_read=7803 bytes_retransmit=9 bytes_invalid=0 send_seq=186 receive_seq=186 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999931 adj=63999687 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=43.8 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=530 bytes_read=10852 bytes_retransmit=0 bytes_invalid=0 send_seq=87 receive_seq=87 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999860 adj=31999667 coil_temp=29.4 refs=0 mcu_temp=30.05 supply_voltage=3.026 sysload=1.45 cputime=18.547 memavail=417868 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 189.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4200 bytes_read=10844 bytes_retransmit=9 bytes_invalid=0 send_seq=356 receive_seq=356 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000774 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000021 bytes_write=1063 bytes_read=5355 bytes_retransmit=0 bytes_invalid=0 send_seq=147 receive_seq=147 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000270 adj=50000184 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1638 bytes_read=7898 bytes_retransmit=9 bytes_invalid=0 send_seq=181 receive_seq=181 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999848 adj=63999795 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1667 bytes_read=7917 bytes_retransmit=9 bytes_invalid=0 send_seq=187 receive_seq=187 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999932 adj=63999608 Octopus_V1.1_F446: temp=34.3 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=536 bytes_read=11208 bytes_retransmit=0 bytes_invalid=0 send_seq=88 receive_seq=88 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999856 adj=31999630 coil_temp=29.4 refs=0 mcu_temp=30.06 supply_voltage=3.026 sysload=1.45 cputime=18.606 memavail=417868 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 190.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4206 bytes_read=10976 bytes_retransmit=9 bytes_invalid=0 send_seq=357 receive_seq=357 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000764 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000021 bytes_write=1069 bytes_read=5371 bytes_retransmit=0 bytes_invalid=0 send_seq=148 receive_seq=148 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000256 adj=50000064 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1644 bytes_read=7998 bytes_retransmit=9 bytes_invalid=0 send_seq=182 receive_seq=182 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999852 adj=63999804 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1673 bytes_read=8017 bytes_retransmit=9 bytes_invalid=0 send_seq=188 receive_seq=188 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000012 adj=63999662 Octopus_V1.1_F446: temp=34.4 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=542 bytes_read=11564 bytes_retransmit=0 bytes_invalid=0 send_seq=89 receive_seq=89 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999853 adj=31999648 coil_temp=29.4 refs=0 mcu_temp=30.07 supply_voltage=3.026 sysload=1.33 cputime=18.664 memavail=417868 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 191.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4212 bytes_read=11079 bytes_retransmit=9 bytes_invalid=0 send_seq=358 receive_seq=358 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000768 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000021 bytes_write=1075 bytes_read=5387 bytes_retransmit=0 bytes_invalid=0 send_seq=149 receive_seq=149 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000250 adj=49999977 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1650 bytes_read=8112 bytes_retransmit=9 bytes_invalid=0 send_seq=183 receive_seq=183 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999855 adj=63999798 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1679 bytes_read=8131 bytes_retransmit=9 bytes_invalid=0 send_seq=189 receive_seq=189 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000004 adj=64000248 Octopus_V1.1_F446: temp=34.2 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=43.8 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=548 bytes_read=11920 bytes_retransmit=0 bytes_invalid=0 send_seq=90 receive_seq=90 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999850 adj=31999652 coil_temp=29.4 refs=0 mcu_temp=30.09 supply_voltage=3.026 sysload=1.33 cputime=18.723 memavail=417868 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 192.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4218 bytes_read=11182 bytes_retransmit=9 bytes_invalid=0 send_seq=359 receive_seq=359 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000786 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000021 bytes_write=1081 bytes_read=5403 bytes_retransmit=0 bytes_invalid=0 send_seq=150 receive_seq=150 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000271 adj=49999940 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1656 bytes_read=8226 bytes_retransmit=9 bytes_invalid=0 send_seq=184 receive_seq=184 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999859 adj=63999756 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1685 bytes_read=8245 bytes_retransmit=9 bytes_invalid=0 send_seq=190 receive_seq=190 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999996 adj=64000053 Octopus_V1.1_F446: temp=34.4 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=554 bytes_read=12276 bytes_retransmit=0 bytes_invalid=0 send_seq=91 receive_seq=91 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999848 adj=31999641 coil_temp=29.4 refs=0 mcu_temp=30.09 supply_voltage=3.026 sysload=1.33 cputime=18.784 memavail=417868 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 193.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4224 bytes_read=11314 bytes_retransmit=9 bytes_invalid=0 send_seq=360 receive_seq=360 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000791 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1087 bytes_read=5432 bytes_retransmit=0 bytes_invalid=0 send_seq=151 receive_seq=151 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000260 adj=50000090 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1662 bytes_read=8340 bytes_retransmit=9 bytes_invalid=0 send_seq=185 receive_seq=185 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999864 adj=63999695 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1691 bytes_read=8359 bytes_retransmit=9 bytes_invalid=0 send_seq=191 receive_seq=191 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999992 adj=63999865 Octopus_V1.1_F446: temp=34.3 EBB42_v1.2_T0: temp=31.7 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=560 bytes_read=12632 bytes_retransmit=0 bytes_invalid=0 send_seq=92 receive_seq=92 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999847 adj=31999625 coil_temp=29.4 refs=0 mcu_temp=30.10 supply_voltage=3.026 sysload=1.33 cputime=18.844 memavail=417644 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 194.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4230 bytes_read=11431 bytes_retransmit=9 bytes_invalid=0 send_seq=361 receive_seq=361 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000784 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1093 bytes_read=5448 bytes_retransmit=0 bytes_invalid=0 send_seq=152 receive_seq=152 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000244 adj=49999983 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1668 bytes_read=8454 bytes_retransmit=9 bytes_invalid=0 send_seq=186 receive_seq=186 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999888 adj=63999689 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1697 bytes_read=8473 bytes_retransmit=9 bytes_invalid=0 send_seq=192 receive_seq=192 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999985 adj=63999778 Octopus_V1.1_F446: temp=34.4 EBB42_v1.2_T0: temp=32.1 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=43.3 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=566 bytes_read=12988 bytes_retransmit=0 bytes_invalid=0 send_seq=93 receive_seq=93 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999843 adj=31999629 coil_temp=29.4 refs=0 mcu_temp=30.11 supply_voltage=3.026 sysload=1.33 cputime=18.901 memavail=417644 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.4 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 195.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4236 bytes_read=11534 bytes_retransmit=9 bytes_invalid=0 send_seq=362 receive_seq=362 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000764 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1099 bytes_read=5464 bytes_retransmit=0 bytes_invalid=0 send_seq=153 receive_seq=153 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000219 adj=49999886 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1674 bytes_read=8568 bytes_retransmit=9 bytes_invalid=0 send_seq=187 receive_seq=187 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999883 adj=63999871 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1703 bytes_read=8587 bytes_retransmit=9 bytes_invalid=0 send_seq=193 receive_seq=193 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999974 adj=63999729 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.5 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=572 bytes_read=13344 bytes_retransmit=0 bytes_invalid=0 send_seq=94 receive_seq=94 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999837 adj=31999631 coil_temp=29.4 refs=0 mcu_temp=30.13 supply_voltage=3.026 sysload=1.22 cputime=18.944 memavail=416144 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.6 pwm=0.000
Stats 196.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4242 bytes_read=11666 bytes_retransmit=9 bytes_invalid=0 send_seq=363 receive_seq=363 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000752 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1105 bytes_read=5480 bytes_retransmit=0 bytes_invalid=0 send_seq=154 receive_seq=154 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000260 adj=49999763 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1680 bytes_read=8668 bytes_retransmit=9 bytes_invalid=0 send_seq=188 receive_seq=188 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999881 adj=63999828 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1709 bytes_read=8687 bytes_retransmit=9 bytes_invalid=0 send_seq=194 receive_seq=194 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999962 adj=63999699 Octopus_V1.1_F446: temp=34.5 EBB42_v1.2_T0: temp=31.9 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.4 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=578 bytes_read=13700 bytes_retransmit=0 bytes_invalid=0 send_seq=95 receive_seq=95 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999832 adj=31999635 coil_temp=29.4 refs=0 mcu_temp=30.14 supply_voltage=3.026 sysload=1.22 cputime=18.976 memavail=413904 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 197.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4248 bytes_read=11769 bytes_retransmit=9 bytes_invalid=0 send_seq=364 receive_seq=364 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000745 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1111 bytes_read=5496 bytes_retransmit=0 bytes_invalid=0 send_seq=155 receive_seq=155 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000246 adj=50000188 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1686 bytes_read=8782 bytes_retransmit=9 bytes_invalid=0 send_seq=189 receive_seq=189 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999881 adj=63999788 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1715 bytes_read=8801 bytes_retransmit=9 bytes_invalid=0 send_seq=195 receive_seq=195 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999954 adj=63999639 Octopus_V1.1_F446: temp=34.4 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.3 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=584 bytes_read=14056 bytes_retransmit=0 bytes_invalid=0 send_seq=96 receive_seq=96 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999829 adj=31999625 coil_temp=29.4 refs=0 mcu_temp=30.16 supply_voltage=3.026 sysload=1.22 cputime=19.003 memavail=414128 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 198.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4254 bytes_read=11872 bytes_retransmit=9 bytes_invalid=0 send_seq=365 receive_seq=365 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000748 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000020 bytes_write=1117 bytes_read=5512 bytes_retransmit=0 bytes_invalid=0 send_seq=156 receive_seq=156 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000222 adj=50000056 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1692 bytes_read=8910 bytes_retransmit=9 bytes_invalid=0 send_seq=190 receive_seq=190 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999881 adj=63999765 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1721 bytes_read=8929 bytes_retransmit=9 bytes_invalid=0 send_seq=196 receive_seq=196 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999946 adj=63999607 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=32.6 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.3 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=590 bytes_read=14412 bytes_retransmit=0 bytes_invalid=0 send_seq=97 receive_seq=97 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999824 adj=31999627 coil_temp=29.4 refs=0 mcu_temp=30.18 supply_voltage=3.026 sysload=1.22 cputime=19.030 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 199.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4260 bytes_read=12018 bytes_retransmit=9 bytes_invalid=0 send_seq=366 receive_seq=366 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000735 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000018 bytes_write=1123 bytes_read=5541 bytes_retransmit=0 bytes_invalid=0 send_seq=157 receive_seq=157 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000202 adj=49999841 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1698 bytes_read=9010 bytes_retransmit=9 bytes_invalid=0 send_seq=191 receive_seq=191 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999879 adj=63999727 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1727 bytes_read=9029 bytes_retransmit=9 bytes_invalid=0 send_seq=197 receive_seq=197 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999941 adj=63999554 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=31.9 EBB42_v1.2_T1: temp=32.7 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.1 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=596 bytes_read=14768 bytes_retransmit=0 bytes_invalid=0 send_seq=98 receive_seq=98 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999821 adj=31999607 coil_temp=29.4 refs=0 mcu_temp=30.19 supply_voltage=3.026 sysload=1.22 cputime=19.058 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 200.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4266 bytes_read=12121 bytes_retransmit=9 bytes_invalid=0 send_seq=367 receive_seq=367 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000729 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000018 bytes_write=1129 bytes_read=5557 bytes_retransmit=0 bytes_invalid=0 send_seq=158 receive_seq=158 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000194 adj=49999744 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1704 bytes_read=9124 bytes_retransmit=9 bytes_invalid=0 send_seq=192 receive_seq=192 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999882 adj=63999715 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1733 bytes_read=9143 bytes_retransmit=9 bytes_invalid=0 send_seq=198 receive_seq=198 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999939 adj=63999581 Octopus_V1.1_F446: temp=34.5 EBB42_v1.2_T0: temp=32.1 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.1 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=602 bytes_read=15124 bytes_retransmit=0 bytes_invalid=0 send_seq=99 receive_seq=99 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999822 adj=31999621 coil_temp=29.4 refs=0 mcu_temp=30.20 supply_voltage=3.026 sysload=1.21 cputime=19.104 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 201.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4272 bytes_read=12222 bytes_retransmit=9 bytes_invalid=0 send_seq=368 receive_seq=368 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000722 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000018 bytes_write=1135 bytes_read=5573 bytes_retransmit=0 bytes_invalid=0 send_seq=159 receive_seq=159 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000183 adj=49999745 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1710 bytes_read=9238 bytes_retransmit=9 bytes_invalid=0 send_seq=193 receive_seq=193 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999903 adj=63999735 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1739 bytes_read=9257 bytes_retransmit=9 bytes_invalid=0 send_seq=199 receive_seq=199 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999938 adj=63999610 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=31.9 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.0 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=608 bytes_read=15480 bytes_retransmit=0 bytes_invalid=0 send_seq=100 receive_seq=100 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999823 adj=31999655 coil_temp=29.4 refs=0 mcu_temp=30.22 supply_voltage=3.026 sysload=1.21 cputime=19.163 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 202.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4278 bytes_read=12345 bytes_retransmit=9 bytes_invalid=0 send_seq=369 receive_seq=369 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000726 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000018 bytes_write=1141 bytes_read=5589 bytes_retransmit=0 bytes_invalid=0 send_seq=160 receive_seq=160 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000210 adj=49999731 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1716 bytes_read=9338 bytes_retransmit=9 bytes_invalid=0 send_seq=194 receive_seq=194 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999905 adj=63999923 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1745 bytes_read=9357 bytes_retransmit=9 bytes_invalid=0 send_seq=200 receive_seq=200 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999937 adj=63999639 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=614 bytes_read=15836 bytes_retransmit=0 bytes_invalid=0 send_seq=101 receive_seq=101 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999823 adj=31999687 coil_temp=29.4 refs=0 mcu_temp=30.24 supply_voltage=3.026 sysload=1.21 cputime=19.222 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 203.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4284 bytes_read=12447 bytes_retransmit=9 bytes_invalid=0 send_seq=370 receive_seq=370 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000757 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000018 bytes_write=1147 bytes_read=5605 bytes_retransmit=0 bytes_invalid=0 send_seq=161 receive_seq=161 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000235 adj=50000027 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1722 bytes_read=9466 bytes_retransmit=9 bytes_invalid=0 send_seq=195 receive_seq=195 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999910 adj=63999855 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1751 bytes_read=9485 bytes_retransmit=9 bytes_invalid=0 send_seq=201 receive_seq=201 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999937 adj=63999626 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.1 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=620 bytes_read=16192 bytes_retransmit=0 bytes_invalid=0 send_seq=102 receive_seq=102 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999823 adj=31999681 coil_temp=29.4 refs=0 mcu_temp=30.25 supply_voltage=3.026 sysload=1.21 cputime=19.280 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 204.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4290 bytes_read=12564 bytes_retransmit=9 bytes_invalid=0 send_seq=371 receive_seq=371 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000743 rpi: mcu_awake=0.001 mcu_task_avg=0.000016 mcu_task_stddev=0.000016 bytes_write=1153 bytes_read=5634 bytes_retransmit=0 bytes_invalid=0 send_seq=162 receive_seq=162 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000231 adj=50000177 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1728 bytes_read=9580 bytes_retransmit=9 bytes_invalid=0 send_seq=196 receive_seq=196 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999910 adj=63999750 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1757 bytes_read=9599 bytes_retransmit=9 bytes_invalid=0 send_seq=202 receive_seq=202 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999936 adj=63999538 Octopus_V1.1_F446: temp=34.5 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=626 bytes_read=16548 bytes_retransmit=0 bytes_invalid=0 send_seq=103 receive_seq=103 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999823 adj=31999636 coil_temp=29.4 refs=0 mcu_temp=30.26 supply_voltage=3.026 sysload=1.21 cputime=19.337 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 205.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4296 bytes_read=12696 bytes_retransmit=9 bytes_invalid=0 send_seq=372 receive_seq=372 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000738 rpi: mcu_awake=0.001 mcu_task_avg=0.000016 mcu_task_stddev=0.000016 bytes_write=1159 bytes_read=5650 bytes_retransmit=0 bytes_invalid=0 send_seq=163 receive_seq=163 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000219 adj=50000131 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1734 bytes_read=9680 bytes_retransmit=9 bytes_invalid=0 send_seq=197 receive_seq=197 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999911 adj=63999762 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1763 bytes_read=9699 bytes_retransmit=9 bytes_invalid=0 send_seq=203 receive_seq=203 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999941 adj=63999605 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=32.9 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=632 bytes_read=16904 bytes_retransmit=0 bytes_invalid=0 send_seq=104 receive_seq=104 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999824 adj=31999668 coil_temp=29.4 refs=0 mcu_temp=30.27 supply_voltage=3.026 sysload=1.11 cputime=19.394 memavail=414160 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 206.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4302 bytes_read=12799 bytes_retransmit=9 bytes_invalid=0 send_seq=373 receive_seq=373 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000741 rpi: mcu_awake=0.001 mcu_task_avg=0.000016 mcu_task_stddev=0.000016 bytes_write=1165 bytes_read=5666 bytes_retransmit=0 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000228 adj=50000009 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1740 bytes_read=9794 bytes_retransmit=9 bytes_invalid=0 send_seq=198 receive_seq=198 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999917 adj=63999764 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1769 bytes_read=9813 bytes_retransmit=9 bytes_invalid=0 send_seq=204 receive_seq=204 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999945 adj=63999692 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=638 bytes_read=17260 bytes_retransmit=0 bytes_invalid=0 send_seq=105 receive_seq=105 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999823 adj=31999696 coil_temp=29.4 refs=0 mcu_temp=30.29 supply_voltage=3.026 sysload=1.11 cputime=19.455 memavail=414176 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=29.9 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 207.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4308 bytes_read=12902 bytes_retransmit=9 bytes_invalid=0 send_seq=374 receive_seq=374 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000747 rpi: mcu_awake=0.001 mcu_task_avg=0.000016 mcu_task_stddev=0.000016 bytes_write=1171 bytes_read=5682 bytes_retransmit=0 bytes_invalid=0 send_seq=165 receive_seq=165 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000244 adj=50000090 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1746 bytes_read=9908 bytes_retransmit=9 bytes_invalid=0 send_seq=199 receive_seq=199 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999919 adj=63999785 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1775 bytes_read=9927 bytes_retransmit=9 bytes_invalid=0 send_seq=205 receive_seq=205 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999951 adj=63999716 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=644 bytes_read=17616 bytes_retransmit=0 bytes_invalid=0 send_seq=106 receive_seq=106 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999823 adj=31999680 coil_temp=29.4 refs=0 mcu_temp=30.31 supply_voltage=3.026 sysload=1.11 cputime=19.514 memavail=414176 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 208.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4314 bytes_read=13034 bytes_retransmit=9 bytes_invalid=0 send_seq=375 receive_seq=375 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000747 rpi: mcu_awake=0.001 mcu_task_avg=0.000016 mcu_task_stddev=0.000016 bytes_write=1177 bytes_read=5698 bytes_retransmit=0 bytes_invalid=0 send_seq=166 receive_seq=166 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000234 adj=50000210 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1752 bytes_read=10022 bytes_retransmit=9 bytes_invalid=0 send_seq=200 receive_seq=200 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999921 adj=63999750 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1781 bytes_read=10041 bytes_retransmit=9 bytes_invalid=0 send_seq=206 receive_seq=206 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999949 adj=63999742 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=32.9 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=650 bytes_read=17972 bytes_retransmit=0 bytes_invalid=0 send_seq=107 receive_seq=107 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999826 adj=31999667 coil_temp=29.4 refs=0 mcu_temp=30.32 supply_voltage=3.026 sysload=1.11 cputime=19.574 memavail=414176 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 209.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4320 bytes_read=13151 bytes_retransmit=9 bytes_invalid=0 send_seq=376 receive_seq=376 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000742 rpi: mcu_awake=0.002 mcu_task_avg=0.000028 mcu_task_stddev=0.000053 bytes_write=1183 bytes_read=5728 bytes_retransmit=0 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000223 adj=50000073 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1758 bytes_read=10136 bytes_retransmit=9 bytes_invalid=0 send_seq=201 receive_seq=201 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=63999740 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1787 bytes_read=10155 bytes_retransmit=9 bytes_invalid=0 send_seq=207 receive_seq=207 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999947 adj=63999709 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=43.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=656 bytes_read=18328 bytes_retransmit=0 bytes_invalid=0 send_seq=108 receive_seq=108 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999826 adj=31999708 coil_temp=29.4 refs=0 mcu_temp=30.33 supply_voltage=3.026 sysload=1.11 cputime=19.635 memavail=414176 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 210.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4326 bytes_read=13254 bytes_retransmit=9 bytes_invalid=0 send_seq=377 receive_seq=377 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000737 rpi: mcu_awake=0.002 mcu_task_avg=0.000028 mcu_task_stddev=0.000053 bytes_write=1189 bytes_read=5744 bytes_retransmit=0 bytes_invalid=0 send_seq=168 receive_seq=168 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000218 adj=49999965 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1764 bytes_read=10250 bytes_retransmit=9 bytes_invalid=0 send_seq=202 receive_seq=202 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999933 adj=63999819 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1793 bytes_read=10269 bytes_retransmit=9 bytes_invalid=0 send_seq=208 receive_seq=208 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999945 adj=63999701 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=45.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=662 bytes_read=18684 bytes_retransmit=0 bytes_invalid=0 send_seq=109 receive_seq=109 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999824 adj=31999709 coil_temp=29.4 refs=0 mcu_temp=30.33 supply_voltage=3.026 sysload=1.02 cputime=19.695 memavail=414452 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 211.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4332 bytes_read=13386 bytes_retransmit=9 bytes_invalid=0 send_seq=378 receive_seq=378 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000733 rpi: mcu_awake=0.002 mcu_task_avg=0.000028 mcu_task_stddev=0.000053 bytes_write=1195 bytes_read=5760 bytes_retransmit=0 bytes_invalid=0 send_seq=169 receive_seq=169 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000205 adj=49999940 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1770 bytes_read=10350 bytes_retransmit=9 bytes_invalid=0 send_seq=203 receive_seq=203 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999937 adj=63999836 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1799 bytes_read=10369 bytes_retransmit=9 bytes_invalid=0 send_seq=209 receive_seq=209 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999944 adj=63999698 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=44.8 heater_bed: target=0 temp=28.5 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=668 bytes_read=19040 bytes_retransmit=0 bytes_invalid=0 send_seq=110 receive_seq=110 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999824 adj=31999696 coil_temp=29.4 refs=0 mcu_temp=30.34 supply_voltage=3.026 sysload=1.02 cputime=19.756 memavail=414452 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 212.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4338 bytes_read=13489 bytes_retransmit=9 bytes_invalid=0 send_seq=379 receive_seq=379 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000726 rpi: mcu_awake=0.002 mcu_task_avg=0.000028 mcu_task_stddev=0.000053 bytes_write=1201 bytes_read=5776 bytes_retransmit=0 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000193 adj=49999835 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1776 bytes_read=10464 bytes_retransmit=9 bytes_invalid=0 send_seq=204 receive_seq=204 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999937 adj=63999855 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1805 bytes_read=10483 bytes_retransmit=9 bytes_invalid=0 send_seq=210 receive_seq=210 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999943 adj=63999696 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=674 bytes_read=19396 bytes_retransmit=0 bytes_invalid=0 send_seq=111 receive_seq=111 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999826 adj=31999699 coil_temp=29.4 refs=0 mcu_temp=30.35 supply_voltage=3.026 sysload=1.02 cputime=19.805 memavail=408908 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 213.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4344 bytes_read=13592 bytes_retransmit=9 bytes_invalid=0 send_seq=380 receive_seq=380 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000708 rpi: mcu_awake=0.002 mcu_task_avg=0.000028 mcu_task_stddev=0.000053 bytes_write=1207 bytes_read=5792 bytes_retransmit=0 bytes_invalid=0 send_seq=171 receive_seq=171 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000175 adj=49999772 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1782 bytes_read=10592 bytes_retransmit=9 bytes_invalid=0 send_seq=205 receive_seq=205 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999932 adj=63999832 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1811 bytes_read=10597 bytes_retransmit=9 bytes_invalid=0 send_seq=211 receive_seq=211 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999937 adj=63999703 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=31.8 EBB42_v1.2_T1: temp=33.1 raspberry_pi: temp=44.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=680 bytes_read=19752 bytes_retransmit=0 bytes_invalid=0 send_seq=112 receive_seq=112 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999822 adj=31999729 coil_temp=29.4 refs=0 mcu_temp=30.36 supply_voltage=3.026 sysload=1.02 cputime=19.832 memavail=415996 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 214.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4350 bytes_read=13738 bytes_retransmit=9 bytes_invalid=0 send_seq=381 receive_seq=381 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000692 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000034 bytes_write=1213 bytes_read=5821 bytes_retransmit=0 bytes_invalid=0 send_seq=172 receive_seq=172 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000159 adj=49999687 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1788 bytes_read=10692 bytes_retransmit=9 bytes_invalid=0 send_seq=206 receive_seq=206 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999927 adj=63999808 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1817 bytes_read=10711 bytes_retransmit=9 bytes_invalid=0 send_seq=212 receive_seq=212 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999931 adj=63999703 Octopus_V1.1_F446: temp=34.5 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=33.0 raspberry_pi: temp=44.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=686 bytes_read=20108 bytes_retransmit=0 bytes_invalid=0 send_seq=113 receive_seq=113 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999819 adj=31999717 coil_temp=29.4 refs=0 mcu_temp=30.36 supply_voltage=3.026 sysload=1.02 cputime=19.858 memavail=415996 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 215.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4356 bytes_read=13841 bytes_retransmit=9 bytes_invalid=0 send_seq=382 receive_seq=382 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000708 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000034 bytes_write=1219 bytes_read=5837 bytes_retransmit=0 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000150 adj=49999643 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1794 bytes_read=10806 bytes_retransmit=9 bytes_invalid=0 send_seq=207 receive_seq=207 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999923 adj=63999793 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1823 bytes_read=10825 bytes_retransmit=9 bytes_invalid=0 send_seq=213 receive_seq=213 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999926 adj=63999705 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.1 EBB42_v1.2_T1: temp=32.9 raspberry_pi: temp=45.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=692 bytes_read=20464 bytes_retransmit=0 bytes_invalid=0 send_seq=114 receive_seq=114 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999815 adj=31999710 coil_temp=29.4 refs=0 mcu_temp=30.38 supply_voltage=3.026 sysload=0.94 cputime=19.885 memavail=415996 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 216.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4362 bytes_read=13944 bytes_retransmit=9 bytes_invalid=0 send_seq=383 receive_seq=383 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000691 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000034 bytes_write=1225 bytes_read=5853 bytes_retransmit=0 bytes_invalid=0 send_seq=174 receive_seq=174 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000136 adj=49999575 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1800 bytes_read=10920 bytes_retransmit=9 bytes_invalid=0 send_seq=208 receive_seq=208 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999921 adj=63999652 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1829 bytes_read=10939 bytes_retransmit=9 bytes_invalid=0 send_seq=214 receive_seq=214 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999922 adj=63999585 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.1 EBB42_v1.2_T1: temp=32.9 raspberry_pi: temp=45.8 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=698 bytes_read=20820 bytes_retransmit=0 bytes_invalid=0 send_seq=115 receive_seq=115 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999813 adj=31999641 coil_temp=29.4 refs=0 mcu_temp=30.40 supply_voltage=3.026 sysload=0.94 cputime=19.913 memavail=415244 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 217.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4368 bytes_read=14076 bytes_retransmit=9 bytes_invalid=0 send_seq=384 receive_seq=384 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000678 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000034 bytes_write=1231 bytes_read=5869 bytes_retransmit=0 bytes_invalid=0 send_seq=175 receive_seq=175 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000122 adj=49999566 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1806 bytes_read=11020 bytes_retransmit=9 bytes_invalid=0 send_seq=209 receive_seq=209 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999917 adj=63999701 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1835 bytes_read=11039 bytes_retransmit=9 bytes_invalid=0 send_seq=215 receive_seq=215 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999934 adj=63999630 Octopus_V1.1_F446: temp=34.8 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=32.9 raspberry_pi: temp=45.3 heater_bed: target=0 temp=28.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=704 bytes_read=21176 bytes_retransmit=0 bytes_invalid=0 send_seq=116 receive_seq=116 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999811 adj=31999663 coil_temp=29.4 refs=0 mcu_temp=30.41 supply_voltage=3.026 sysload=0.94 cputime=19.954 memavail=415252 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 218.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4374 bytes_read=14179 bytes_retransmit=9 bytes_invalid=0 send_seq=385 receive_seq=385 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000684 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000034 bytes_write=1237 bytes_read=5885 bytes_retransmit=0 bytes_invalid=0 send_seq=176 receive_seq=176 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000118 adj=49999552 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1812 bytes_read=11148 bytes_retransmit=9 bytes_invalid=0 send_seq=210 receive_seq=210 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999918 adj=63999711 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1841 bytes_read=11153 bytes_retransmit=9 bytes_invalid=0 send_seq=216 receive_seq=216 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999936 adj=63999818 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.1 EBB42_v1.2_T1: temp=33.1 raspberry_pi: temp=45.3 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=710 bytes_read=21532 bytes_retransmit=0 bytes_invalid=0 send_seq=117 receive_seq=117 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999811 adj=31999676 coil_temp=29.4 refs=0 mcu_temp=30.43 supply_voltage=3.026 sysload=0.94 cputime=20.012 memavail=415256 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 219.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4380 bytes_read=14282 bytes_retransmit=9 bytes_invalid=0 send_seq=386 receive_seq=386 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000683 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000014 bytes_write=1243 bytes_read=5914 bytes_retransmit=0 bytes_invalid=0 send_seq=177 receive_seq=177 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000114 adj=49999584 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1818 bytes_read=11256 bytes_retransmit=9 bytes_invalid=0 send_seq=211 receive_seq=211 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999918 adj=63999683 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1847 bytes_read=11275 bytes_retransmit=9 bytes_invalid=0 send_seq=217 receive_seq=217 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999936 adj=63999787 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=44.8 heater_bed: target=0 temp=28.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=716 bytes_read=21888 bytes_retransmit=0 bytes_invalid=0 send_seq=118 receive_seq=118 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999811 adj=31999661 coil_temp=29.4 refs=0 mcu_temp=30.44 supply_voltage=3.026 sysload=0.94 cputime=20.072 memavail=415256 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 220.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4386 bytes_read=14428 bytes_retransmit=9 bytes_invalid=0 send_seq=387 receive_seq=387 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000682 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000014 bytes_write=1249 bytes_read=5930 bytes_retransmit=0 bytes_invalid=0 send_seq=178 receive_seq=178 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000110 adj=49999633 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1824 bytes_read=11349 bytes_retransmit=9 bytes_invalid=0 send_seq=212 receive_seq=212 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999918 adj=63999692 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1853 bytes_read=11368 bytes_retransmit=9 bytes_invalid=0 send_seq=218 receive_seq=218 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999936 adj=63999768 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=32.8 raspberry_pi: temp=45.3 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=722 bytes_read=22244 bytes_retransmit=0 bytes_invalid=0 send_seq=119 receive_seq=119 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999811 adj=31999679 coil_temp=29.5 refs=0 mcu_temp=30.46 supply_voltage=3.026 sysload=0.86 cputime=20.131 memavail=415256 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 221.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4392 bytes_read=14531 bytes_retransmit=9 bytes_invalid=0 send_seq=388 receive_seq=388 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000679 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000014 bytes_write=1255 bytes_read=5946 bytes_retransmit=0 bytes_invalid=0 send_seq=179 receive_seq=179 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000109 adj=49999662 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1830 bytes_read=11455 bytes_retransmit=9 bytes_invalid=0 send_seq=213 receive_seq=213 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999922 adj=63999690 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1859 bytes_read=11474 bytes_retransmit=9 bytes_invalid=0 send_seq=219 receive_seq=219 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999934 adj=63999752 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=33.1 raspberry_pi: temp=44.8 heater_bed: target=0 temp=28.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=728 bytes_read=22600 bytes_retransmit=0 bytes_invalid=0 send_seq=120 receive_seq=120 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999809 adj=31999673 coil_temp=29.5 refs=0 mcu_temp=30.47 supply_voltage=3.026 sysload=0.86 cputime=20.192 memavail=415256 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 222.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4398 bytes_read=14634 bytes_retransmit=9 bytes_invalid=0 send_seq=389 receive_seq=389 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000675 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000014 bytes_write=1261 bytes_read=5962 bytes_retransmit=0 bytes_invalid=0 send_seq=180 receive_seq=180 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000106 adj=49999723 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1836 bytes_read=11561 bytes_retransmit=9 bytes_invalid=0 send_seq=214 receive_seq=214 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999923 adj=63999738 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1865 bytes_read=11580 bytes_retransmit=9 bytes_invalid=0 send_seq=220 receive_seq=220 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999934 adj=63999730 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.0 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=44.8 heater_bed: target=0 temp=28.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=734 bytes_read=22956 bytes_retransmit=0 bytes_invalid=0 send_seq=121 receive_seq=121 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999809 adj=31999671 coil_temp=29.5 refs=0 mcu_temp=30.49 supply_voltage=3.026 sysload=0.86 cputime=20.253 memavail=415256 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 223.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4404 bytes_read=14766 bytes_retransmit=9 bytes_invalid=0 send_seq=390 receive_seq=390 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000673 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000014 bytes_write=1267 bytes_read=5978 bytes_retransmit=0 bytes_invalid=0 send_seq=181 receive_seq=181 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000105 adj=49999753 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=1842 bytes_read=11672 bytes_retransmit=9 bytes_invalid=0 send_seq=215 receive_seq=215 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999926 adj=63999760 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1871 bytes_read=11677 bytes_retransmit=9 bytes_invalid=0 send_seq=221 receive_seq=221 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999932 adj=63999732 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.0 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=740 bytes_read=23312 bytes_retransmit=0 bytes_invalid=0 send_seq=122 receive_seq=122 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999808 adj=31999675 coil_temp=29.5 refs=0 mcu_temp=30.50 supply_voltage=3.026 sysload=0.86 cputime=20.313 memavail=415256 print_time=10.099 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
toolhead: max_velocity: 36000.000000
max_accel: 8000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
toolhead: max_velocity: 800.000000
max_accel: 10000.000000
minimum_cruise_ratio: 0.500000
square_corner_velocity: 5.000000
TMC 'stepper_z' reports GSTAT: 00000001 reset=1(Reset)
TMC 'stepper_z1' reports GSTAT: 00000001 reset=1(Reset)
TMC 'stepper_z2' reports GSTAT: 00000001 reset=1(Reset)
TMC 'stepper_z' reports GSTAT: 00000000
TMC 'stepper_z1' reports GSTAT: 00000000
TMC 'stepper_z2' reports GSTAT: 00000000
Stats 241.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=6318 bytes_read=18309 bytes_retransmit=9 bytes_invalid=0 send_seq=496 receive_seq=496 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000645 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000028 bytes_write=1381 bytes_read=6330 bytes_retransmit=0 bytes_invalid=0 send_seq=200 receive_seq=200 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000089 adj=49999985 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1956 bytes_read=13698 bytes_retransmit=9 bytes_invalid=0 send_seq=234 receive_seq=234 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999947 adj=63999837 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1985 bytes_read=13717 bytes_retransmit=9 bytes_invalid=0 send_seq=240 receive_seq=240 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999942 adj=63999541 Octopus_V1.1_F446: temp=34.8 EBB42_v1.2_T0: temp=32.3 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.8 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=848 bytes_read=29704 bytes_retransmit=0 bytes_invalid=0 send_seq=140 receive_seq=140 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999806 adj=31999691 coil_temp=29.5 refs=0 mcu_temp=30.62 supply_voltage=3.027 sysload=0.62 cputime=21.366 memavail=419272 print_time=88.037 buffer_time=0.628 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 242.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=7601 bytes_read=19490 bytes_retransmit=9 bytes_invalid=0 send_seq=567 receive_seq=567 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000640 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000028 bytes_write=1387 bytes_read=6345 bytes_retransmit=0 bytes_invalid=0 send_seq=201 receive_seq=201 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000090 adj=49999926 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1962 bytes_read=13826 bytes_retransmit=9 bytes_invalid=0 send_seq=235 receive_seq=235 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999944 adj=63999764 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1991 bytes_read=13845 bytes_retransmit=9 bytes_invalid=0 send_seq=241 receive_seq=241 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999939 adj=63999547 Octopus_V1.1_F446: temp=34.9 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.9 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=854 bytes_read=30060 bytes_retransmit=0 bytes_invalid=0 send_seq=141 receive_seq=141 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999805 adj=31999684 coil_temp=29.5 refs=0 mcu_temp=30.63 supply_voltage=3.026 sysload=0.62 cputime=21.524 memavail=419272 print_time=88.590 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
TMC 'stepper_x' reports GSTAT: 00000001 reset=1(Reset)
TMC 'stepper_y' reports GSTAT: 00000001 reset=1(Reset)
TMC 'stepper_y1' reports GSTAT: 00000001 reset=1(Reset)
TMC 'dual_carriage' reports GSTAT: 00000001 reset=1(Reset)
TMC 'stepper_x' reports GSTAT: 00000000
TMC 'stepper_y' reports GSTAT: 00000000
TMC 'stepper_y1' reports GSTAT: 00000000
TMC 'dual_carriage' reports GSTAT: 00000000
Stats 243.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=9755 bytes_read=21230 bytes_retransmit=9 bytes_invalid=0 send_seq=669 receive_seq=669 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000688 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000028 bytes_write=1393 bytes_read=6361 bytes_retransmit=0 bytes_invalid=0 send_seq=202 receive_seq=202 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000091 adj=49999949 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1968 bytes_read=13926 bytes_retransmit=9 bytes_invalid=0 send_seq=236 receive_seq=236 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999942 adj=63999740 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=1997 bytes_read=13945 bytes_retransmit=9 bytes_invalid=0 send_seq=242 receive_seq=242 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999943 adj=63999542 Octopus_V1.1_F446: temp=34.9 EBB42_v1.2_T0: temp=32.3 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=860 bytes_read=30416 bytes_retransmit=0 bytes_invalid=0 send_seq=142 receive_seq=142 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999804 adj=31999683 coil_temp=29.5 refs=0 mcu_temp=30.64 supply_voltage=3.026 sysload=0.62 cputime=21.715 memavail=419048 print_time=89.626 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.4 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 244.5: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=15354 bytes_read=22361 bytes_retransmit=9 bytes_invalid=0 send_seq=785 receive_seq=785 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000695 rpi: mcu_awake=0.001 mcu_task_avg=0.000022 mcu_task_stddev=0.000035 bytes_write=1399 bytes_read=6390 bytes_retransmit=0 bytes_invalid=0 send_seq=203 receive_seq=203 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000082 adj=49999776 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=2007 bytes_read=14040 bytes_retransmit=9 bytes_invalid=0 send_seq=237 receive_seq=237 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999944 adj=63999489 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2003 bytes_read=14059 bytes_retransmit=9 bytes_invalid=0 send_seq=243 receive_seq=243 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999938 adj=63999413 Octopus_V1.1_F446: temp=34.9 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.1 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.7 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=866 bytes_read=30772 bytes_retransmit=0 bytes_invalid=0 send_seq=143 receive_seq=143 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999803 adj=31999554 coil_temp=29.5 refs=0 mcu_temp=30.64 supply_voltage=3.026 sysload=0.62 cputime=21.846 memavail=418296 print_time=90.628 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 245.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=17236 bytes_read=25196 bytes_retransmit=9 bytes_invalid=0 send_seq=940 receive_seq=940 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000679 rpi: mcu_awake=0.001 mcu_task_avg=0.000022 mcu_task_stddev=0.000035 bytes_write=1405 bytes_read=6406 bytes_retransmit=0 bytes_invalid=0 send_seq=204 receive_seq=204 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000078 adj=49999669 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=3465 bytes_read=16467 bytes_retransmit=9 bytes_invalid=0 send_seq=359 receive_seq=359 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999940 adj=63999524 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2009 bytes_read=14187 bytes_retransmit=9 bytes_invalid=0 send_seq=244 receive_seq=244 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999933 adj=63999392 Octopus_V1.1_F446: temp=34.8 EBB42_v1.2_T0: temp=32.3 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.6 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=872 bytes_read=31128 bytes_retransmit=0 bytes_invalid=0 send_seq=144 receive_seq=144 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999801 adj=31999564 coil_temp=29.5 refs=0 mcu_temp=30.66 supply_voltage=3.026 sysload=0.57 cputime=21.945 memavail=418304 print_time=91.628 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 246.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=18909 bytes_read=27579 bytes_retransmit=9 bytes_invalid=0 send_seq=1071 receive_seq=1071 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000663 rpi: mcu_awake=0.001 mcu_task_avg=0.000022 mcu_task_stddev=0.000035 bytes_write=1411 bytes_read=6422 bytes_retransmit=0 bytes_invalid=0 send_seq=205 receive_seq=205 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000072 adj=49999735 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=4681 bytes_read=18440 bytes_retransmit=9 bytes_invalid=0 send_seq=459 receive_seq=459 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999941 adj=63999605 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2015 bytes_read=14287 bytes_retransmit=9 bytes_invalid=0 send_seq=245 receive_seq=245 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=63999477 Octopus_V1.1_F446: temp=34.5 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.5 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=878 bytes_read=31484 bytes_retransmit=0 bytes_invalid=0 send_seq=145 receive_seq=145 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999609 coil_temp=29.5 refs=0 mcu_temp=30.68 supply_voltage=3.026 sysload=0.57 cputime=22.040 memavail=418304 print_time=92.614 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 247.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=19999 bytes_read=29009 bytes_retransmit=9 bytes_invalid=0 send_seq=1150 receive_seq=1150 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000649 rpi: mcu_awake=0.001 mcu_task_avg=0.000022 mcu_task_stddev=0.000035 bytes_write=1417 bytes_read=6438 bytes_retransmit=0 bytes_invalid=0 send_seq=206 receive_seq=206 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000070 adj=49999666 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5072 bytes_read=19173 bytes_retransmit=9 bytes_invalid=0 send_seq=493 receive_seq=493 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999939 adj=63999616 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2216 bytes_read=14650 bytes_retransmit=9 bytes_invalid=0 send_seq=261 receive_seq=261 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=33 upcoming_bytes=0 freq=63999923 adj=63999444 Octopus_V1.1_F446: temp=34.7 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.4 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=884 bytes_read=31840 bytes_retransmit=0 bytes_invalid=0 send_seq=146 receive_seq=146 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999579 coil_temp=29.5 refs=0 mcu_temp=30.68 supply_voltage=3.026 sysload=0.57 cputime=22.128 memavail=418836 print_time=93.713 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 248.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=21878 bytes_read=30207 bytes_retransmit=9 bytes_invalid=0 send_seq=1226 receive_seq=1226 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000022 mcu_task_stddev=0.000035 bytes_write=1423 bytes_read=6454 bytes_retransmit=0 bytes_invalid=0 send_seq=207 receive_seq=207 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000064 adj=49999755 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5078 bytes_read=19273 bytes_retransmit=9 bytes_invalid=0 send_seq=494 receive_seq=494 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999938 adj=63999673 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2652 bytes_read=15416 bytes_retransmit=9 bytes_invalid=0 send_seq=296 receive_seq=296 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999920 adj=63999516 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=896 bytes_read=32144 bytes_retransmit=0 bytes_invalid=0 send_seq=148 receive_seq=147 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999635 coil_temp=29.5 refs=0 mcu_temp=30.68 supply_voltage=3.026 sysload=0.57 cputime=22.201 memavail=418836 print_time=94.831 buffer_time=0.417 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
RatOS:: Homing Z
Stats 249.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22273 bytes_read=30207 bytes_retransmit=1766 bytes_invalid=0 send_seq=1236 receive_seq=1226 retransmit_seq=1234 srtt=0.000 rttvar=0.000 rto=0.800 ready_bytes=0 upcoming_bytes=0 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=1429 bytes_read=6483 bytes_retransmit=0 bytes_invalid=0 send_seq=208 receive_seq=208 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000059 adj=49999532 toolboard_t0: mcu_awake=0.029 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=5084 bytes_read=19389 bytes_retransmit=9 bytes_invalid=0 send_seq=495 receive_seq=495 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999935 adj=63999442 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=2658 bytes_read=15531 bytes_retransmit=9 bytes_invalid=0 send_seq=297 receive_seq=297 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999927 adj=63999301 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=967 bytes_read=32574 bytes_retransmit=50 bytes_invalid=0 send_seq=155 receive_seq=148 retransmit_seq=150 srtt=0.001 rttvar=0.000 rto=0.800 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999534 coil_temp=29.5 refs=0 mcu_temp=30.68 supply_voltage=3.026 sysload=0.57 cputime=22.308 memavail=418836 print_time=95.668 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 250.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=2235 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=1.600 ready_bytes=150 upcoming_bytes=244 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=1435 bytes_read=6499 bytes_retransmit=0 bytes_invalid=0 send_seq=209 receive_seq=209 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000055 adj=49999544 toolboard_t0: mcu_awake=0.029 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=5090 bytes_read=19489 bytes_retransmit=9 bytes_invalid=0 send_seq=496 receive_seq=496 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999933 adj=63999463 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=2664 bytes_read=15631 bytes_retransmit=9 bytes_invalid=0 send_seq=298 receive_seq=298 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=63999467 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=989 bytes_read=33228 bytes_retransmit=122 bytes_invalid=0 send_seq=158 receive_seq=158 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999796 adj=31999564 coil_temp=29.5 refs=0 mcu_temp=30.69 supply_voltage=3.026 sysload=0.52 cputime=22.345 memavail=418836 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 251.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=2235 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=1.600 ready_bytes=150 upcoming_bytes=245 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=1441 bytes_read=6515 bytes_retransmit=0 bytes_invalid=0 send_seq=210 receive_seq=210 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000052 adj=49999557 toolboard_t0: mcu_awake=0.029 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=5096 bytes_read=19617 bytes_retransmit=9 bytes_invalid=0 send_seq=497 receive_seq=497 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999931 adj=63999484 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=2670 bytes_read=15759 bytes_retransmit=9 bytes_invalid=0 send_seq=299 receive_seq=299 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999925 adj=63999537 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=995 bytes_read=33584 bytes_retransmit=122 bytes_invalid=0 send_seq=159 receive_seq=159 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999565 coil_temp=29.5 refs=0 mcu_temp=30.70 supply_voltage=3.026 sysload=0.52 cputime=22.372 memavail=418836 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 252.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=2704 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=3.200 ready_bytes=150 upcoming_bytes=246 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=1447 bytes_read=6531 bytes_retransmit=0 bytes_invalid=0 send_seq=211 receive_seq=211 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000052 adj=49999589 toolboard_t0: mcu_awake=0.029 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=5102 bytes_read=19717 bytes_retransmit=9 bytes_invalid=0 send_seq=498 receive_seq=498 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=63999500 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=2676 bytes_read=15859 bytes_retransmit=9 bytes_invalid=0 send_seq=300 receive_seq=300 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999922 adj=63999521 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1001 bytes_read=33940 bytes_retransmit=122 bytes_invalid=0 send_seq=160 receive_seq=160 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999604 coil_temp=29.5 refs=0 mcu_temp=30.71 supply_voltage=3.026 sysload=0.52 cputime=22.398 memavail=418836 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=31.0 pwm=0.000
Timeout with MCU 'mcu' (eventtime=253.491162)
Transition to shutdown state: Lost communication with MCU 'mcu'
Dumping gcode input 0 blocks
Dumping 20 requests for client 4097816728
Received 163.970927: b'{"id":4039397016,"method":"info","params":{}}'
Received 163.971964: b'{"id":4039394664,"method":"objects/subscribe","params":{"objects":{"webhooks":null},"response_template":{"method":"process_status_update"}}}'
Received 163.973793: b'{"id":4039393584,"method":"gcode/subscribe_output","params":{"response_template":{"method":"process_gcode_response"}}}'
Received 163.975166: b'{"id":4039406328,"method":"list_endpoints","params":{}}'
Received 163.976523: b'{"id":4039406016,"method":"objects/subscribe","params":{"objects":{"webhooks":null,"print_stats":null},"response_template":{"method":"process_status_update"}}}'
Received 164.224620: b'{"id":4039394736,"method":"objects/list","params":{}}'
Received 164.226635: b'{"id":4039394736,"method":"objects/query","params":{"objects":{"configfile":null}}}'
Received 164.522359: b'{"id":4039394448,"method":"register_remote_method","params":{"response_template":{"method":"shutdown_machine"},"remote_method":"shutdown_machine"}}'
Received 164.524454: b'{"id":4039393344,"method":"register_remote_method","params":{"response_template":{"method":"reboot_machine"},"remote_method":"reboot_machine"}}'
Received 164.525479: b'{"id":4039393344,"method":"register_remote_method","params":{"response_template":{"method":"pause_job_queue"},"remote_method":"pause_job_queue"}}'
Received 164.526285: b'{"id":4039393344,"method":"register_remote_method","params":{"response_template":{"method":"start_job_queue"},"remote_method":"start_job_queue"}}'
Received 164.528507: b'{"id":4039393896,"method":"objects/query","params":{"objects":{"heaters":null}}}'
Received 164.528507: b'{"id":4039393440,"method":"objects/query","params":{"objects":{"heaters":null}}}'
Received 164.535980: b'{"id":4039394352,"method":"info","params":{}}'
Received 164.535980: b'{"id":4039393968,"method":"objects/list","params":{}}'
Received 164.554032: b'{"id":4039393608,"method":"objects/subscribe","params":{"objects":{"gcode":null,"webhooks":null,"configfile":null,"mcu":null,"mcu rpi":null,"mcu toolboard_t0":null,"mcu toolboard_t1":null,"heaters":null,"temperature_sensor Octopus_V1.1_F446":null,"temperature_sensor EBB42_v1.2_T0":null,"temperature_sensor EBB42_v1.2_T1":null,"gcode_macro RatOS":null,"gcode_macro HOME_X":null,"gcode_macro HOME_Y":null,"gcode_macro HOME_Z":null,"gcode_macro HOME_X_SENSORLESS":null,"gcode_macro HOME_Y_SENSORLESS":null,"gcode_macro _Z_HOP":null,"gcode_macro _MOVE_TO_SAFE_Z_HOME":null,"gcode_macro MAYBE_HOME":null,"gcode_macro PID_CALIBRATE_HOTEND":null,"gcode_macro PID_CALIBRATE_BED":null,"gcode_macro PID_CALIBRATE_CHAMBER_HEATER":null,"gcode_macro INITIALIZE_PA_TUNING":null,"gcode_macro CHAMBER_FILTER_ON":null,"gcode_macro CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_ON":null,"gcode_macro _CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_TURN_ON":null,"gcode_macro _CHAMBER_FILTER_TURN_OFF":null,"gcode_macro _CHAMBER_FILTER_SANITY_CHECK":null,"gcode_macro CHAMBER_HEATER_ON":null,"gcode_macro CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_ON":null,"gcode_macro _CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_ON":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_OFF":null,"gcode_macro _USER_CHAMBER_HEATER_BEFORE_PREHEATING":null,"gcode_macro _USER_CHAMBER_HEATER_AFTER_PREHEATING":null,"gcode_macro _LED_START_PRINTING":null,"gcode_macro _LED_START_PRINTING_ERROR":null,"gcode_macro _LED_PRINTING":null,"gcode_macro _LED_PAUSE":null,"gcode_macro _LED_CHAMBER_FILTER_ON":null,"gcode_macro _LED_CHAMBER_FILTER_OFF":null,"gcode_macro _LED_LOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_LOADED":null,"gcode_macro _LED_FILAMENT_RUNOUT":null,"gcode_macro _LED_FILAMENT_CLOG":null,"gcode_macro _LED_UNLOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_UNLOADED":null,"gcode_macro _LED_DEACTIVATE_TOOLHEAD":null,"gcode_macro _LED_TOOLHEAD_STANDBY":null,"gcode_macro _LED_TOOLHEAD_WAKEUP":null,"gcode_macro _LED_MOTORS_OFF":null,"gcode_macro _LED_INPUT_SHAPER_START":null,"gcode_macro _LED_INPUT_SHAPER_END":null,"gcode_macro _LED_BEACON_CALIBRATION_START":null,"gcode_macro _LED_BEACON_CALIBRATION_END":null,"gcode_macro _LED_BEACON_CALIBRATION_ERROR":null,"gcode_macro _LED_VAOC_ON":null,"gcode_macro _LED_VAOC_OFF":null,"gcode_macro _LED_ACTION":null,"gcode_macro _LED_SUCCESS":null,"gcode_macro _LED_HEATING":null,"gcode_macro _LED_COOLING":null,"gcode_macro _LED_ERROR":null,"gcode_macro _LED_ON":null,"gcode_macro _LED_OFF":null,"gcode_macro _LED_STANDBY":null,"gcode_macro _LED_SET":null,"gcode_macro _USER_LED_SET":null,"gcode_macro LOAD_FILAMENT":null,"gcode_macro _DEFAULT_LOAD_FILAMENT":null,"gcode_macro _IDEX_LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE":null,"gcode_macro _LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_INSERT":null,"gcode_macro _PURGE_BEFORE_UNLOAD":null,"gcode_macro _PURGE_FILAMENT":null,"gcode_macro _MOVE_TO_PARKING_POSITION":null,"gcode_macro _MOVE_TO_LOADING_POSITION":null,"gcode_macro _CLEANING_MOVE":null,"gcode_macro _START_PRINT_BED_MESH":null,"gcode_macro CALIBRATE_ADAPTIVE_MESH":null,"gcode_macro M84":null,"gcode_macro M104":null,"gcode_macro M109":null,"gcode_macro SET_HEATER_TEMPERATURE":null,"gcode_macro TEMPERATURE_WAIT":null,"gcode_macro SET_GCODE_OFFSET":null,"gcode_macro SDCARD_PRINT_FILE":null,"gcode_macro SKEW_PROFILE":null,"gcode_macro SET_SKEW":null,"gcode_macro SET_VELOCITY_LIMIT":null,"gcode_macro _START_PRINT_PARK":null,"gcode_macro _END_PRINT_PARK":null,"gcode_macro _PARK":null,"gcode_macro SAVE_PROBE_RESULT":null,"gcode_macro PROBE_FOR_PRIMING":null,"gcode_macro RESET_PRIME_PROBE_STATE":null,"gcode_macro PROBE_CURRENT_POSITION":null,"gcode_macro PRIME_BLOB":null,"gcode_macro UNLOAD_FILAMENT":null,"gcode_macro _LEGACY_UNLOAD_FILAMENT":null,"gcode_macro _DEFAULT_UNLOAD_FILAMENT":null,"gcode_macro _IDEX_UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE":null,"gcode_macro _UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER":null,"gcode_macro _UNLOAD_WITH_TIP_FORMING":null,"gcode_macro _UNLOAD_KNOWN_FILAMENT":null,"gcode_macro _UNLOAD_UNKNOWN_FILAMENT":null,"gcode_macro _TIP_FORMING":null,"gcode_macro _ON_FILAMENT_SENSOR_BUTTON_PRESSED":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_FILAMENT_END":null,"gcode_macro M600":null,"gcode_macro COLD_PULL":null,"gcode_macro _USER_START_PRINT_BEFORE_HOMING":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _USER_START_PRINT_BED_MESH":null,"gcode_macro _USER_START_PRINT_PARK":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _USER_START_PRINT_HEAT_CHAMBER":null,"gcode_macro _USER_END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_PARK":null,"gcode_macro _USER_END_PRINT_FINISHED":null,"gcode_macro _USER_START_PRINT":null,"gcode_macro _USER_END_START_PRINT":null,"gcode_macro _USER_START_FEATURE":null,"gcode_macro _USER_END_FEATURE":null,"gcode_macro ECHO_T_VARS":null,"gcode_macro ECHO_RATOS_VARS":null,"gcode_macro INITIAL_FRONTEND_UPDATE":null,"gcode_macro CALCULATE_PRINTABLE_AREA":null,"gcode_macro CACHE_TOOLHEAD_SETTINGS":null,"gcode_macro RESTORE_TOOLHEAD_SETTINGS":null,"gcode_macro SET_MACRO_TRAVEL_SETTINGS":null,"gcode_macro SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro IDEX_SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro VERIFY_HYBRID_INVERTED":null,"gcode_macro RATOS_ECHO":null,"gcode_macro ENABLE_DEBUG":null,"gcode_macro DISABLE_DEBUG":null,"gcode_macro DEBUG_ECHO":null,"gcode_macro START_FEATURE":null,"gcode_macro END_FEATURE":null,"gcode_macro _ON_LAYER_CHANGE":null,"gcode_macro _LEARN_MORE_CALIBRATION":null,"gcode_macro _LEARN_MORE_CHAMBER_FILTER":null,"gcode_macro _LEARN_MORE_FILAMENT":null,"gcode_macro _CONSOLE_SAVE_CONFIG":null,"gcode_macro SAVE_Z_OFFSET":null,"gcode_macro _LOAD_RATOS_SKEW_PROFILE":null,"gcode_macro M601":null,"gcode_macro PAUSE":null,"gcode_macro RESUME":null,"gcode_macro CANCEL_PRINT":null,"gcode_macro START_PRINT":null,"gcode_macro _START_PRINT_BEFORE_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _PRIME":null,"gcode_macro END_PRINT":null,"gcode_macro _END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _SET_EXTRUSION_MODE":null,"gcode_macro GENERATE_SHAPER_GRAPHS":null,"gcode_macro MEASURE_COREXY_BELT_TENSION":null,"idle_timeout":null,"temperature_host raspberry_pi":null,"temperature_sensor raspberry_pi":null,"gcode_move":null,"print_stats":null,"virtual_sdcard":null,"display_status":null,"pause_resume":null,"ratos":null,"exclude_object":null,"heater_bed":null,"fan":null,"heater_fan toolhead_cooling_fan":null,"gcode_macro IDEX_SINGLE":null,"gcode_macro _IDEX_SINGLE":null,"gcode_macro IDEX_COPY":null,"gcode_macro _IDEX_COPY":null,"gcode_macro IDEX_MIRROR":null,"gcode_macro _IDEX_MIRROR":null,"gcode_macro _IDEX_SET_TOOLHEADS":null,"gcode_macro IDEX_PARK":null,"gcode_macro PARK_TOOLHEAD":null,"gcode_macro JOIN_SPOOLS":null,"gcode_macro _IDEX_JOIN_SPOOLS":null,"gcode_macro _JOIN_SPOOL":null,"gcode_macro REMAP_TOOLHEADS":null,"gcode_macro _IDEX_REMAP_TOOLHEADS":null,"gcode_macro SHAPER_CALIBRATE":null,"gcode_macro SET_PRESSURE_ADVANCE":null,"gcode_macro M106":null,"gcode_macro M107":null,"gcode_macro _SELECT_TOOL":null,"gcode_macro _TOOLHEAD_STANDBY":null,"gcode_macro _TOOLHEAD_WAKEUP":null,"gcode_macro _TOOLCHANGE":null,"gcode_macro _ZHOP_BEFORE_TOOLCHANGE":null,"gcode_macro _ZDROP_AFTER_TOOLCHANGE":null,"gcode_macro _EXTRUDE":null,"gcode_macro _DEACTIVATE_TOOLHEAD":null,"gcode_macro _SET_TOOLHEAD_OFFSET":null,"gcode_macro TOOLSHIFT_CONFIG":null,"gcode_macro CALCULATE_DC_ENDSTOP":null,"gcode_macro INCREASE_Y_MAX":null,"gcode_macro _VAOC":null,"gcode_macro _VAOC_START":null,"gcode_macro _START_VAOC":null,"gcode_macro _VAOC_END":null,"gcode_macro _VAOC_LOAD_TOOL":null,"gcode_macro _VAOC_SET_CAMERA_COOLING":null,"gcode_macro _VAOC_SET_TOOL":null,"gcode_macro _VAOC_MOVE":null,"gcode_macro _VAOC_CALIBRATE_Z_OFFSET":null,"gcode_macro _VAOC_PROBE_Z_OFFSET":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_CURRENT_POSITION":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT":null,"gcode_macro _VAOC_ECHO_Z_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_TEMP_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS":null,"gcode_macro _VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT":null,"gcode_macro _VAOC_ENSURE_SAFE_Z_HEIGHT":null,"gcode_macro _VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED":null,"gcode_macro _VAOC_RESET":null,"gcode_macro _ECHO_VAOC_VARS":null,"gcode_macro _VAOC_SWITCH_LED":null,"gcode_macro Z_PROBE_TEST_T0":null,"gcode_macro Z_PROBE_TEST_T1":null,"gcode_macro Z_PROBE_TEST":null,"gcode_macro _VAOC_Z_PROBE_LOOP":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T0":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T1":null,"gcode_macro _SHAKE_IT":null,"gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _VAOC_TEST_Z_OFFSET":null,"gcode_macro Z_TILT_ADJUST":null,"bed_mesh":null,"z_tilt":null,"firmware_retraction":null,"stepper_enable":null,"tmc2209 stepper_x":null,"tmc2209 dual_carriage":null,"tmc2209 stepper_y":null,"tmc2209 stepper_y1":null,"tmc2209 stepper_z":null,"tmc2209 stepper_z1":null,"tmc2209 stepper_z2":null,"tmc2209 extruder":null,"tmc2209 extruder1":null,"beacons":null,"mcu beacon":null,"probe":null,"temperature_sensor beacon_coil":null,"beacon":null,"gcode_macro BEACON_RATOS_CALIBRATION":null,"gcode_macro BEACON_RATOS_CALIBRATE":null,"gcode_macro BEACON_INITIAL_CALIBRATION":null,"gcode_macro BEACON_FINAL_CALIBRATION":null,"gcode_macro BEACON_POKE_TEST":null,"gcode_macro _BEACON_PROBE_POKE":null,"gcode_macro _BEACON_STORE_POKE":null,"gcode_macro _BEACON_CHECK_POKE":null,"gcode_macro _BEACON_ECHO_POKE":null,"gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET":null,"gcode_macro BEACON_MEASURE_GANTRY_TWIST":null,"gcode_macro _BEACON_PROBE_GANTRY_TWIST":null,"gcode_macro _BEACON_STORE_GANTRY_TWIST":null,"gcode_macro _BEACON_ECHO_GANTRY_TWIST":null,"gcode_macro BEACON_CREATE_SCAN_COMPENSATION_MESH":null,"gcode_macro _BEACON_APPLY_SCAN_COMPENSATION":null,"gcode_macro _BEACON_MAYBE_SCAN_COMPENSATION":null,"gcode_macro _BEACON_HOME_AND_ABL":null,"gcode_macro _BEACON_SAVE_MULTIPLIER":null,"gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER":null,"fan_generic part_fan_t0":null,"fan_generic part_fan_t1":null,"heater_fan toolhead_cooling_fan_t1":null,"controller_fan controller_fan":null,"gcode_macro T0":null,"gcode_macro T1":null,"save_variables":null,"fan_generic filter":null,"filament_switch_sensor toolhead_filament_sensor_t0":null,"gcode_button toolhead_filament_sensor_button_t0":null,"filament_switch_sensor toolhead_filament_sensor_t1":null,"gcode_button toolhead_filament_sensor_button_t1":null,"z_offset_probe":null,"neopixel vaoc_led":null,"heater_fan vaoc_fan":null,"motion_report":null,"query_endstops":null,"dual_carriage":null,"system_stats":null,"manual_probe":null,"toolhead":null,"extruder":null,"extruder1":null},"response_template":{"method":"process_status_update"}}}'
Received 164.922942: b'{"id":4039393848,"method":"objects/subscribe","params":{"objects":{"webhooks":null,"print_stats":null,"temperature_sensor Octopus_V1.1_F446":null,"temperature_sensor EBB42_v1.2_T0":null,"temperature_sensor EBB42_v1.2_T1":null,"temperature_sensor raspberry_pi":null,"heater_bed":null,"temperature_sensor beacon_coil":null,"extruder":null,"extruder1":null,"gcode":null,"configfile":null,"mcu":null,"mcu rpi":null,"mcu toolboard_t0":null,"mcu toolboard_t1":null,"heaters":null,"gcode_macro RatOS":null,"gcode_macro HOME_X":null,"gcode_macro HOME_Y":null,"gcode_macro HOME_Z":null,"gcode_macro HOME_X_SENSORLESS":null,"gcode_macro HOME_Y_SENSORLESS":null,"gcode_macro _Z_HOP":null,"gcode_macro _MOVE_TO_SAFE_Z_HOME":null,"gcode_macro MAYBE_HOME":null,"gcode_macro PID_CALIBRATE_HOTEND":null,"gcode_macro PID_CALIBRATE_BED":null,"gcode_macro PID_CALIBRATE_CHAMBER_HEATER":null,"gcode_macro INITIALIZE_PA_TUNING":null,"gcode_macro CHAMBER_FILTER_ON":null,"gcode_macro CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_ON":null,"gcode_macro _CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_TURN_ON":null,"gcode_macro _CHAMBER_FILTER_TURN_OFF":null,"gcode_macro _CHAMBER_FILTER_SANITY_CHECK":null,"gcode_macro CHAMBER_HEATER_ON":null,"gcode_macro CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_ON":null,"gcode_macro _CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_ON":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_OFF":null,"gcode_macro _USER_CHAMBER_HEATER_BEFORE_PREHEATING":null,"gcode_macro _USER_CHAMBER_HEATER_AFTER_PREHEATING":null,"gcode_macro _LED_START_PRINTING":null,"gcode_macro _LED_START_PRINTING_ERROR":null,"gcode_macro _LED_PRINTING":null,"gcode_macro _LED_PAUSE":null,"gcode_macro _LED_CHAMBER_FILTER_ON":null,"gcode_macro _LED_CHAMBER_FILTER_OFF":null,"gcode_macro _LED_LOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_LOADED":null,"gcode_macro _LED_FILAMENT_RUNOUT":null,"gcode_macro _LED_FILAMENT_CLOG":null,"gcode_macro _LED_UNLOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_UNLOADED":null,"gcode_macro _LED_DEACTIVATE_TOOLHEAD":null,"gcode_macro _LED_TOOLHEAD_STANDBY":null,"gcode_macro _LED_TOOLHEAD_WAKEUP":null,"gcode_macro _LED_MOTORS_OFF":null,"gcode_macro _LED_INPUT_SHAPER_START":null,"gcode_macro _LED_INPUT_SHAPER_END":null,"gcode_macro _LED_BEACON_CALIBRATION_START":null,"gcode_macro _LED_BEACON_CALIBRATION_END":null,"gcode_macro _LED_BEACON_CALIBRATION_ERROR":null,"gcode_macro _LED_VAOC_ON":null,"gcode_macro _LED_VAOC_OFF":null,"gcode_macro _LED_ACTION":null,"gcode_macro _LED_SUCCESS":null,"gcode_macro _LED_HEATING":null,"gcode_macro _LED_COOLING":null,"gcode_macro _LED_ERROR":null,"gcode_macro _LED_ON":null,"gcode_macro _LED_OFF":null,"gcode_macro _LED_STANDBY":null,"gcode_macro _LED_SET":null,"gcode_macro _USER_LED_SET":null,"gcode_macro LOAD_FILAMENT":null,"gcode_macro _DEFAULT_LOAD_FILAMENT":null,"gcode_macro _IDEX_LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE":null,"gcode_macro _LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_INSERT":null,"gcode_macro _PURGE_BEFORE_UNLOAD":null,"gcode_macro _PURGE_FILAMENT":null,"gcode_macro _MOVE_TO_PARKING_POSITION":null,"gcode_macro _MOVE_TO_LOADING_POSITION":null,"gcode_macro _CLEANING_MOVE":null,"gcode_macro _START_PRINT_BED_MESH":null,"gcode_macro CALIBRATE_ADAPTIVE_MESH":null,"gcode_macro M84":null,"gcode_macro M104":null,"gcode_macro M109":null,"gcode_macro SET_HEATER_TEMPERATURE":null,"gcode_macro TEMPERATURE_WAIT":null,"gcode_macro SET_GCODE_OFFSET":null,"gcode_macro SDCARD_PRINT_FILE":null,"gcode_macro SKEW_PROFILE":null,"gcode_macro SET_SKEW":null,"gcode_macro SET_VELOCITY_LIMIT":null,"gcode_macro _START_PRINT_PARK":null,"gcode_macro _END_PRINT_PARK":null,"gcode_macro _PARK":null,"gcode_macro SAVE_PROBE_RESULT":null,"gcode_macro PROBE_FOR_PRIMING":null,"gcode_macro RESET_PRIME_PROBE_STATE":null,"gcode_macro PROBE_CURRENT_POSITION":null,"gcode_macro PRIME_BLOB":null,"gcode_macro UNLOAD_FILAMENT":null,"gcode_macro _LEGACY_UNLOAD_FILAMENT":null,"gcode_macro _DEFAULT_UNLOAD_FILAMENT":null,"gcode_macro _IDEX_UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE":null,"gcode_macro _UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER":null,"gcode_macro _UNLOAD_WITH_TIP_FORMING":null,"gcode_macro _UNLOAD_KNOWN_FILAMENT":null,"gcode_macro _UNLOAD_UNKNOWN_FILAMENT":null,"gcode_macro _TIP_FORMING":null,"gcode_macro _ON_FILAMENT_SENSOR_BUTTON_PRESSED":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_FILAMENT_END":null,"gcode_macro M600":null,"gcode_macro COLD_PULL":null,"gcode_macro _USER_START_PRINT_BEFORE_HOMING":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _USER_START_PRINT_BED_MESH":null,"gcode_macro _USER_START_PRINT_PARK":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _USER_START_PRINT_HEAT_CHAMBER":null,"gcode_macro _USER_END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_PARK":null,"gcode_macro _USER_END_PRINT_FINISHED":null,"gcode_macro _USER_START_PRINT":null,"gcode_macro _USER_END_START_PRINT":null,"gcode_macro _USER_START_FEATURE":null,"gcode_macro _USER_END_FEATURE":null,"gcode_macro ECHO_T_VARS":null,"gcode_macro ECHO_RATOS_VARS":null,"gcode_macro INITIAL_FRONTEND_UPDATE":null,"gcode_macro CALCULATE_PRINTABLE_AREA":null,"gcode_macro CACHE_TOOLHEAD_SETTINGS":null,"gcode_macro RESTORE_TOOLHEAD_SETTINGS":null,"gcode_macro SET_MACRO_TRAVEL_SETTINGS":null,"gcode_macro SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro IDEX_SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro VERIFY_HYBRID_INVERTED":null,"gcode_macro RATOS_ECHO":null,"gcode_macro ENABLE_DEBUG":null,"gcode_macro DISABLE_DEBUG":null,"gcode_macro DEBUG_ECHO":null,"gcode_macro START_FEATURE":null,"gcode_macro END_FEATURE":null,"gcode_macro _ON_LAYER_CHANGE":null,"gcode_macro _LEARN_MORE_CALIBRATION":null,"gcode_macro _LEARN_MORE_CHAMBER_FILTER":null,"gcode_macro _LEARN_MORE_FILAMENT":null,"gcode_macro _CONSOLE_SAVE_CONFIG":null,"gcode_macro SAVE_Z_OFFSET":null,"gcode_macro _LOAD_RATOS_SKEW_PROFILE":null,"gcode_macro M601":null,"gcode_macro PAUSE":null,"gcode_macro RESUME":null,"gcode_macro CANCEL_PRINT":null,"gcode_macro START_PRINT":null,"gcode_macro _START_PRINT_BEFORE_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _PRIME":null,"gcode_macro END_PRINT":null,"gcode_macro _END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _SET_EXTRUSION_MODE":null,"gcode_macro GENERATE_SHAPER_GRAPHS":null,"gcode_macro MEASURE_COREXY_BELT_TENSION":null,"idle_timeout":null,"temperature_host raspberry_pi":null,"gcode_move":null,"virtual_sdcard":null,"display_status":null,"pause_resume":null,"ratos":null,"exclude_object":null,"fan":null,"heater_fan toolhead_cooling_fan":null,"gcode_macro IDEX_SINGLE":null,"gcode_macro _IDEX_SINGLE":null,"gcode_macro IDEX_COPY":null,"gcode_macro _IDEX_COPY":null,"gcode_macro IDEX_MIRROR":null,"gcode_macro _IDEX_MIRROR":null,"gcode_macro _IDEX_SET_TOOLHEADS":null,"gcode_macro IDEX_PARK":null,"gcode_macro PARK_TOOLHEAD":null,"gcode_macro JOIN_SPOOLS":null,"gcode_macro _IDEX_JOIN_SPOOLS":null,"gcode_macro _JOIN_SPOOL":null,"gcode_macro REMAP_TOOLHEADS":null,"gcode_macro _IDEX_REMAP_TOOLHEADS":null,"gcode_macro SHAPER_CALIBRATE":null,"gcode_macro SET_PRESSURE_ADVANCE":null,"gcode_macro M106":null,"gcode_macro M107":null,"gcode_macro _SELECT_TOOL":null,"gcode_macro _TOOLHEAD_STANDBY":null,"gcode_macro _TOOLHEAD_WAKEUP":null,"gcode_macro _TOOLCHANGE":null,"gcode_macro _ZHOP_BEFORE_TOOLCHANGE":null,"gcode_macro _ZDROP_AFTER_TOOLCHANGE":null,"gcode_macro _EXTRUDE":null,"gcode_macro _DEACTIVATE_TOOLHEAD":null,"gcode_macro _SET_TOOLHEAD_OFFSET":null,"gcode_macro TOOLSHIFT_CONFIG":null,"gcode_macro CALCULATE_DC_ENDSTOP":null,"gcode_macro INCREASE_Y_MAX":null,"gcode_macro _VAOC":null,"gcode_macro _VAOC_START":null,"gcode_macro _START_VAOC":null,"gcode_macro _VAOC_END":null,"gcode_macro _VAOC_LOAD_TOOL":null,"gcode_macro _VAOC_SET_CAMERA_COOLING":null,"gcode_macro _VAOC_SET_TOOL":null,"gcode_macro _VAOC_MOVE":null,"gcode_macro _VAOC_CALIBRATE_Z_OFFSET":null,"gcode_macro _VAOC_PROBE_Z_OFFSET":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_CURRENT_POSITION":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT":null,"gcode_macro _VAOC_ECHO_Z_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_TEMP_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS":null,"gcode_macro _VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT":null,"gcode_macro _VAOC_ENSURE_SAFE_Z_HEIGHT":null,"gcode_macro _VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED":null,"gcode_macro _VAOC_RESET":null,"gcode_macro _ECHO_VAOC_VARS":null,"gcode_macro _VAOC_SWITCH_LED":null,"gcode_macro Z_PROBE_TEST_T0":null,"gcode_macro Z_PROBE_TEST_T1":null,"gcode_macro Z_PROBE_TEST":null,"gcode_macro _VAOC_Z_PROBE_LOOP":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T0":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T1":null,"gcode_macro _SHAKE_IT":null,"gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _VAOC_TEST_Z_OFFSET":null,"gcode_macro Z_TILT_ADJUST":null,"bed_mesh":null,"z_tilt":null,"firmware_retraction":null,"stepper_enable":null,"tmc2209 stepper_x":null,"tmc2209 dual_carriage":null,"tmc2209 stepper_y":null,"tmc2209 stepper_y1":null,"tmc2209 stepper_z":null,"tmc2209 stepper_z1":null,"tmc2209 stepper_z2":null,"tmc2209 extruder":null,"tmc2209 extruder1":null,"beacons":null,"mcu beacon":null,"probe":null,"beacon":null,"gcode_macro BEACON_RATOS_CALIBRATION":null,"gcode_macro BEACON_RATOS_CALIBRATE":null,"gcode_macro BEACON_INITIAL_CALIBRATION":null,"gcode_macro BEACON_FINAL_CALIBRATION":null,"gcode_macro BEACON_POKE_TEST":null,"gcode_macro _BEACON_PROBE_POKE":null,"gcode_macro _BEACON_STORE_POKE":null,"gcode_macro _BEACON_CHECK_POKE":null,"gcode_macro _BEACON_ECHO_POKE":null,"gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET":null,"gcode_macro BEACON_MEASURE_GANTRY_TWIST":null,"gcode_macro _BEACON_PROBE_GANTRY_TWIST":null,"gcode_macro _BEACON_STORE_GANTRY_TWIST":null,"gcode_macro _BEACON_ECHO_GANTRY_TWIST":null,"gcode_macro BEACON_CREATE_SCAN_COMPENSATION_MESH":null,"gcode_macro _BEACON_APPLY_SCAN_COMPENSATION":null,"gcode_macro _BEACON_MAYBE_SCAN_COMPENSATION":null,"gcode_macro _BEACON_HOME_AND_ABL":null,"gcode_macro _BEACON_SAVE_MULTIPLIER":null,"gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER":null,"fan_generic part_fan_t0":null,"fan_generic part_fan_t1":null,"heater_fan toolhead_cooling_fan_t1":null,"controller_fan controller_fan":null,"gcode_macro T0":null,"gcode_macro T1":null,"save_variables":null,"fan_generic filter":null,"filament_switch_sensor toolhead_filament_sensor_t0":null,"gcode_button toolhead_filament_sensor_button_t0":null,"filament_switch_sensor toolhead_filament_sensor_t1":null,"gcode_button toolhead_filament_sensor_button_t1":null,"z_offset_probe":null,"neopixel vaoc_led":null,"heater_fan vaoc_fan":null,"motion_report":null,"query_endstops":null,"dual_carriage":null,"system_stats":null,"manual_probe":null,"toolhead":null},"response_template":{"method":"process_status_update"}}}'
Received 165.050600: b'{"id":4039394376,"method":"objects/subscribe","params":{"objects":{"webhooks":null,"print_stats":null,"temperature_sensor Octopus_V1.1_F446":null,"temperature_sensor EBB42_v1.2_T0":null,"temperature_sensor EBB42_v1.2_T1":null,"temperature_sensor raspberry_pi":null,"heater_bed":null,"temperature_sensor beacon_coil":null,"extruder":null,"extruder1":null,"gcode":null,"configfile":null,"mcu":null,"mcu rpi":null,"mcu toolboard_t0":null,"mcu toolboard_t1":null,"heaters":null,"gcode_macro RatOS":null,"gcode_macro HOME_X":null,"gcode_macro HOME_Y":null,"gcode_macro HOME_Z":null,"gcode_macro HOME_X_SENSORLESS":null,"gcode_macro HOME_Y_SENSORLESS":null,"gcode_macro _Z_HOP":null,"gcode_macro _MOVE_TO_SAFE_Z_HOME":null,"gcode_macro MAYBE_HOME":null,"gcode_macro PID_CALIBRATE_HOTEND":null,"gcode_macro PID_CALIBRATE_BED":null,"gcode_macro PID_CALIBRATE_CHAMBER_HEATER":null,"gcode_macro INITIALIZE_PA_TUNING":null,"gcode_macro CHAMBER_FILTER_ON":null,"gcode_macro CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_ON":null,"gcode_macro _CHAMBER_FILTER_OFF":null,"gcode_macro _CHAMBER_FILTER_TURN_ON":null,"gcode_macro _CHAMBER_FILTER_TURN_OFF":null,"gcode_macro _CHAMBER_FILTER_SANITY_CHECK":null,"gcode_macro CHAMBER_HEATER_ON":null,"gcode_macro CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_ON":null,"gcode_macro _CHAMBER_HEATER_OFF":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_ON":null,"gcode_macro _CHAMBER_HEATER_EXTRA_FAN_OFF":null,"gcode_macro _USER_CHAMBER_HEATER_BEFORE_PREHEATING":null,"gcode_macro _USER_CHAMBER_HEATER_AFTER_PREHEATING":null,"gcode_macro _LED_START_PRINTING":null,"gcode_macro _LED_START_PRINTING_ERROR":null,"gcode_macro _LED_PRINTING":null,"gcode_macro _LED_PAUSE":null,"gcode_macro _LED_CHAMBER_FILTER_ON":null,"gcode_macro _LED_CHAMBER_FILTER_OFF":null,"gcode_macro _LED_LOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_LOADED":null,"gcode_macro _LED_FILAMENT_RUNOUT":null,"gcode_macro _LED_FILAMENT_CLOG":null,"gcode_macro _LED_UNLOADING_FILAMENT":null,"gcode_macro _LED_FILAMENT_UNLOADED":null,"gcode_macro _LED_DEACTIVATE_TOOLHEAD":null,"gcode_macro _LED_TOOLHEAD_STANDBY":null,"gcode_macro _LED_TOOLHEAD_WAKEUP":null,"gcode_macro _LED_MOTORS_OFF":null,"gcode_macro _LED_INPUT_SHAPER_START":null,"gcode_macro _LED_INPUT_SHAPER_END":null,"gcode_macro _LED_BEACON_CALIBRATION_START":null,"gcode_macro _LED_BEACON_CALIBRATION_END":null,"gcode_macro _LED_BEACON_CALIBRATION_ERROR":null,"gcode_macro _LED_VAOC_ON":null,"gcode_macro _LED_VAOC_OFF":null,"gcode_macro _LED_ACTION":null,"gcode_macro _LED_SUCCESS":null,"gcode_macro _LED_HEATING":null,"gcode_macro _LED_COOLING":null,"gcode_macro _LED_ERROR":null,"gcode_macro _LED_ON":null,"gcode_macro _LED_OFF":null,"gcode_macro _LED_STANDBY":null,"gcode_macro _LED_SET":null,"gcode_macro _USER_LED_SET":null,"gcode_macro LOAD_FILAMENT":null,"gcode_macro _DEFAULT_LOAD_FILAMENT":null,"gcode_macro _IDEX_LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT":null,"gcode_macro _LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE":null,"gcode_macro _LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_INSERT":null,"gcode_macro _PURGE_BEFORE_UNLOAD":null,"gcode_macro _PURGE_FILAMENT":null,"gcode_macro _MOVE_TO_PARKING_POSITION":null,"gcode_macro _MOVE_TO_LOADING_POSITION":null,"gcode_macro _CLEANING_MOVE":null,"gcode_macro _START_PRINT_BED_MESH":null,"gcode_macro CALIBRATE_ADAPTIVE_MESH":null,"gcode_macro M84":null,"gcode_macro M104":null,"gcode_macro M109":null,"gcode_macro SET_HEATER_TEMPERATURE":null,"gcode_macro TEMPERATURE_WAIT":null,"gcode_macro SET_GCODE_OFFSET":null,"gcode_macro SDCARD_PRINT_FILE":null,"gcode_macro SKEW_PROFILE":null,"gcode_macro SET_SKEW":null,"gcode_macro SET_VELOCITY_LIMIT":null,"gcode_macro _START_PRINT_PARK":null,"gcode_macro _END_PRINT_PARK":null,"gcode_macro _PARK":null,"gcode_macro SAVE_PROBE_RESULT":null,"gcode_macro PROBE_FOR_PRIMING":null,"gcode_macro RESET_PRIME_PROBE_STATE":null,"gcode_macro PROBE_CURRENT_POSITION":null,"gcode_macro PRIME_BLOB":null,"gcode_macro UNLOAD_FILAMENT":null,"gcode_macro _LEGACY_UNLOAD_FILAMENT":null,"gcode_macro _DEFAULT_UNLOAD_FILAMENT":null,"gcode_macro _IDEX_UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT":null,"gcode_macro _UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE":null,"gcode_macro _UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER":null,"gcode_macro _UNLOAD_WITH_TIP_FORMING":null,"gcode_macro _UNLOAD_KNOWN_FILAMENT":null,"gcode_macro _UNLOAD_UNKNOWN_FILAMENT":null,"gcode_macro _TIP_FORMING":null,"gcode_macro _ON_FILAMENT_SENSOR_BUTTON_PRESSED":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_TOOLHEAD_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT":null,"gcode_macro _ON_BOWDEN_FILAMENT_SENSOR_CLOG":null,"gcode_macro _ON_FILAMENT_END":null,"gcode_macro M600":null,"gcode_macro COLD_PULL":null,"gcode_macro _USER_START_PRINT_BEFORE_HOMING":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _USER_START_PRINT_BED_MESH":null,"gcode_macro _USER_START_PRINT_PARK":null,"gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _USER_START_PRINT_HEAT_CHAMBER":null,"gcode_macro _USER_END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _USER_END_PRINT_PARK":null,"gcode_macro _USER_END_PRINT_FINISHED":null,"gcode_macro _USER_START_PRINT":null,"gcode_macro _USER_END_START_PRINT":null,"gcode_macro _USER_START_FEATURE":null,"gcode_macro _USER_END_FEATURE":null,"gcode_macro ECHO_T_VARS":null,"gcode_macro ECHO_RATOS_VARS":null,"gcode_macro INITIAL_FRONTEND_UPDATE":null,"gcode_macro CALCULATE_PRINTABLE_AREA":null,"gcode_macro CACHE_TOOLHEAD_SETTINGS":null,"gcode_macro RESTORE_TOOLHEAD_SETTINGS":null,"gcode_macro SET_MACRO_TRAVEL_SETTINGS":null,"gcode_macro SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro IDEX_SET_CENTER_KINEMATIC_POSITION":null,"gcode_macro VERIFY_HYBRID_INVERTED":null,"gcode_macro RATOS_ECHO":null,"gcode_macro ENABLE_DEBUG":null,"gcode_macro DISABLE_DEBUG":null,"gcode_macro DEBUG_ECHO":null,"gcode_macro START_FEATURE":null,"gcode_macro END_FEATURE":null,"gcode_macro _ON_LAYER_CHANGE":null,"gcode_macro _LEARN_MORE_CALIBRATION":null,"gcode_macro _LEARN_MORE_CHAMBER_FILTER":null,"gcode_macro _LEARN_MORE_FILAMENT":null,"gcode_macro _CONSOLE_SAVE_CONFIG":null,"gcode_macro SAVE_Z_OFFSET":null,"gcode_macro _LOAD_RATOS_SKEW_PROFILE":null,"gcode_macro M601":null,"gcode_macro PAUSE":null,"gcode_macro RESUME":null,"gcode_macro CANCEL_PRINT":null,"gcode_macro START_PRINT":null,"gcode_macro _START_PRINT_BEFORE_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED":null,"gcode_macro _START_PRINT_AFTER_HEATING_BED_PROBE_FOR_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_CONTACT_WITH_OPTIONAL_WIPE":null,"gcode_macro _START_PRINT_AFTER_HEATING_EXTRUDER":null,"gcode_macro _PRIME":null,"gcode_macro END_PRINT":null,"gcode_macro _END_PRINT_BEFORE_HEATERS_OFF":null,"gcode_macro _END_PRINT_AFTER_HEATERS_OFF":null,"gcode_macro _SET_EXTRUSION_MODE":null,"gcode_macro GENERATE_SHAPER_GRAPHS":null,"gcode_macro MEASURE_COREXY_BELT_TENSION":null,"idle_timeout":null,"temperature_host raspberry_pi":null,"gcode_move":null,"virtual_sdcard":null,"display_status":null,"pause_resume":null,"ratos":null,"exclude_object":null,"fan":null,"heater_fan toolhead_cooling_fan":null,"gcode_macro IDEX_SINGLE":null,"gcode_macro _IDEX_SINGLE":null,"gcode_macro IDEX_COPY":null,"gcode_macro _IDEX_COPY":null,"gcode_macro IDEX_MIRROR":null,"gcode_macro _IDEX_MIRROR":null,"gcode_macro _IDEX_SET_TOOLHEADS":null,"gcode_macro IDEX_PARK":null,"gcode_macro PARK_TOOLHEAD":null,"gcode_macro JOIN_SPOOLS":null,"gcode_macro _IDEX_JOIN_SPOOLS":null,"gcode_macro _JOIN_SPOOL":null,"gcode_macro REMAP_TOOLHEADS":null,"gcode_macro _IDEX_REMAP_TOOLHEADS":null,"gcode_macro SHAPER_CALIBRATE":null,"gcode_macro SET_PRESSURE_ADVANCE":null,"gcode_macro M106":null,"gcode_macro M107":null,"gcode_macro _SELECT_TOOL":null,"gcode_macro _TOOLHEAD_STANDBY":null,"gcode_macro _TOOLHEAD_WAKEUP":null,"gcode_macro _TOOLCHANGE":null,"gcode_macro _ZHOP_BEFORE_TOOLCHANGE":null,"gcode_macro _ZDROP_AFTER_TOOLCHANGE":null,"gcode_macro _EXTRUDE":null,"gcode_macro _DEACTIVATE_TOOLHEAD":null,"gcode_macro _SET_TOOLHEAD_OFFSET":null,"gcode_macro TOOLSHIFT_CONFIG":null,"gcode_macro CALCULATE_DC_ENDSTOP":null,"gcode_macro INCREASE_Y_MAX":null,"gcode_macro _VAOC":null,"gcode_macro _VAOC_START":null,"gcode_macro _START_VAOC":null,"gcode_macro _VAOC_END":null,"gcode_macro _VAOC_LOAD_TOOL":null,"gcode_macro _VAOC_SET_CAMERA_COOLING":null,"gcode_macro _VAOC_SET_TOOL":null,"gcode_macro _VAOC_MOVE":null,"gcode_macro _VAOC_CALIBRATE_Z_OFFSET":null,"gcode_macro _VAOC_PROBE_Z_OFFSET":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_CURRENT_POSITION":null,"gcode_macro _VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT":null,"gcode_macro _VAOC_ECHO_Z_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_TEMP_OFFSET":null,"gcode_macro _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _VAOC_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _VAOC_ENSURE_CONTROL_POINT_WITHIN_EXPECTED_CAMERA_POS":null,"gcode_macro _VAOC_ENSURE_TOOLHEAD_WITHIN_CONTROL_POINT":null,"gcode_macro _VAOC_ENSURE_SAFE_Z_HEIGHT":null,"gcode_macro _VAOC_ENSURE_FILAMENTS_ARE_NOT_LOADED":null,"gcode_macro _VAOC_RESET":null,"gcode_macro _ECHO_VAOC_VARS":null,"gcode_macro _VAOC_SWITCH_LED":null,"gcode_macro Z_PROBE_TEST_T0":null,"gcode_macro Z_PROBE_TEST_T1":null,"gcode_macro Z_PROBE_TEST":null,"gcode_macro _VAOC_Z_PROBE_LOOP":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T0":null,"gcode_macro _VAOC_Z_PROBE_TEST_EVALUATE_T1":null,"gcode_macro _SHAKE_IT":null,"gcode_macro _ADD_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _ADD_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_PRIMARY_TOOLHEAD_RESULT":null,"gcode_macro _CLEAR_SECONDARY_TOOLHEAD_RESULT":null,"gcode_macro _VAOC_TEST_Z_OFFSET":null,"gcode_macro Z_TILT_ADJUST":null,"bed_mesh":null,"z_tilt":null,"firmware_retraction":null,"stepper_enable":null,"tmc2209 stepper_x":null,"tmc2209 dual_carriage":null,"tmc2209 stepper_y":null,"tmc2209 stepper_y1":null,"tmc2209 stepper_z":null,"tmc2209 stepper_z1":null,"tmc2209 stepper_z2":null,"tmc2209 extruder":null,"tmc2209 extruder1":null,"beacons":null,"mcu beacon":null,"probe":null,"beacon":null,"gcode_macro BEACON_RATOS_CALIBRATION":null,"gcode_macro BEACON_RATOS_CALIBRATE":null,"gcode_macro BEACON_INITIAL_CALIBRATION":null,"gcode_macro BEACON_FINAL_CALIBRATION":null,"gcode_macro BEACON_POKE_TEST":null,"gcode_macro _BEACON_PROBE_POKE":null,"gcode_macro _BEACON_STORE_POKE":null,"gcode_macro _BEACON_CHECK_POKE":null,"gcode_macro _BEACON_ECHO_POKE":null,"gcode_macro BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_PROBE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_STORE_NOZZLE_TEMP_OFFSET":null,"gcode_macro _BEACON_ECHO_NOZZLE_TEMP_OFFSETS":null,"gcode_macro _BEACON_SET_NOZZLE_TEMP_OFFSET":null,"gcode_macro BEACON_MEASURE_GANTRY_TWIST":null,"gcode_macro _BEACON_PROBE_GANTRY_TWIST":null,"gcode_macro _BEACON_STORE_GANTRY_TWIST":null,"gcode_macro _BEACON_ECHO_GANTRY_TWIST":null,"gcode_macro BEACON_CREATE_SCAN_COMPENSATION_MESH":null,"gcode_macro _BEACON_APPLY_SCAN_COMPENSATION":null,"gcode_macro _BEACON_MAYBE_SCAN_COMPENSATION":null,"gcode_macro _BEACON_HOME_AND_ABL":null,"gcode_macro _BEACON_SAVE_MULTIPLIER":null,"gcode_macro _BEACON_APPLY_RUNTIME_MULTIPLIER":null,"fan_generic part_fan_t0":null,"fan_generic part_fan_t1":null,"heater_fan toolhead_cooling_fan_t1":null,"controller_fan controller_fan":null,"gcode_macro T0":null,"gcode_macro T1":null,"save_variables":null,"fan_generic filter":null,"filament_switch_sensor toolhead_filament_sensor_t0":null,"gcode_button toolhead_filament_sensor_button_t0":null,"filament_switch_sensor toolhead_filament_sensor_t1":null,"gcode_button toolhead_filament_sensor_button_t1":null,"z_offset_probe":null,"neopixel vaoc_led":null,"heater_fan vaoc_fan":null,"motion_report":null,"query_endstops":null,"dual_carriage":null,"system_stats":null,"manual_probe":null,"toolhead":null},"response_template":{"method":"process_status_update"}}}'
Received 165.307923: b'{"id":4039394976,"method":"objects/query","params":{"objects":{"extruder":["can_extrude"],"extruder1":["can_extrude"]}}}'
Received 240.809973: b'{"id":4039587800,"method":"gcode/script","params":{"script":"G28"}}'
gcode state: absolute_coord=True absolute_extrude=True base_position=[0.0, 0.0, 0.0, 0.0] last_position=[250.0, 250.0, 749.0, 0.0] homing_position=[0.0, 0.0, 0.0, 0.0] speed_factor=0.016666666666666666 extrude_factor=1.0 speed=600.0
Reactor garbage collection: (248.990760981, 243.694650799, 0.0)
Lost communication with MCU 'mcu'
Once the underlying issue is corrected, use the
"FIRMWARE_RESTART" command to reset the firmware, reload the
config, and restart the host software.
Printer is shutdown
MCU 'beacon' shutdown: Emergency stop
clocksync state: mcu_freq=32000000 last_clock=3217455456 clock_est=(224.466 2291429685 31999799.477) min_half_rtt=0.000173 min_rtt_time=162.461 time_avg=224.466(616.172) clock_avg=2291429685.507(19717370307.145) pred_variance=36276393.904 clock_adj=(-1.217 31999646.750)
Dumping serial stats: bytes_write=1020 bytes_read=34326 bytes_retransmit=122 bytes_invalid=0 send_seq=163 receive_seq=163 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 165.773004 165.773004 6: seq: 1f, get_clock
Sent 1 166.757206 166.757206 6: seq: 10, get_clock
Sent 2 167.741277 167.741277 6: seq: 11, get_clock
Sent 3 168.725626 168.725626 6: seq: 12, get_clock
Sent 4 169.713984 169.713984 6: seq: 13, get_clock
Sent 5 170.698905 170.698905 6: seq: 14, get_clock
Sent 6 171.683018 171.683018 6: seq: 15, get_clock
Sent 7 172.667132 172.667132 6: seq: 16, get_clock
Sent 8 173.651819 173.651819 6: seq: 17, get_clock
Sent 9 174.636878 174.636878 6: seq: 18, get_clock
Sent 10 175.621202 175.621202 6: seq: 19, get_clock
Sent 11 176.605587 176.605587 6: seq: 1a, get_clock
Sent 12 177.589984 177.589984 6: seq: 1b, get_clock
Sent 13 178.574227 178.574227 6: seq: 1c, get_clock
Sent 14 179.558525 179.558525 6: seq: 1d, get_clock
Sent 15 180.543438 180.543438 6: seq: 1e, get_clock
Sent 16 181.527672 181.527672 6: seq: 1f, get_clock
Sent 17 182.511900 182.511900 6: seq: 10, get_clock
Sent 18 183.501530 183.501530 6: seq: 11, get_clock
Sent 19 184.486005 184.486005 6: seq: 12, get_clock
Sent 20 185.470422 185.470422 6: seq: 13, get_clock
Sent 21 186.455007 186.455007 6: seq: 14, get_clock
Sent 22 187.439241 187.439241 6: seq: 15, get_clock
Sent 23 188.423480 188.423480 6: seq: 16, get_clock
Sent 24 189.407732 189.407732 6: seq: 17, get_clock
Sent 25 190.392160 190.392160 6: seq: 18, get_clock
Sent 26 191.376444 191.376444 6: seq: 19, get_clock
Sent 27 192.360580 192.360580 6: seq: 1a, get_clock
Sent 28 193.345443 193.345443 6: seq: 1b, get_clock
Sent 29 194.330490 194.330490 6: seq: 1c, get_clock
Sent 30 195.314714 195.314714 6: seq: 1d, get_clock
Sent 31 196.298704 196.298704 6: seq: 1e, get_clock
Sent 32 197.283871 197.283871 6: seq: 1f, get_clock
Sent 33 198.268109 198.268109 6: seq: 10, get_clock
Sent 34 199.252439 199.252439 6: seq: 11, get_clock
Sent 35 200.237448 200.237448 6: seq: 12, get_clock
Sent 36 201.221635 201.221635 6: seq: 13, get_clock
Sent 37 202.205888 202.205888 6: seq: 14, get_clock
Sent 38 203.190115 203.190115 6: seq: 15, get_clock
Sent 39 204.174265 204.174265 6: seq: 16, get_clock
Sent 40 205.158497 205.158497 6: seq: 17, get_clock
Sent 41 206.143506 206.143506 6: seq: 18, get_clock
Sent 42 207.127947 207.127947 6: seq: 19, get_clock
Sent 43 208.112290 208.112290 6: seq: 1a, get_clock
Sent 44 209.097258 209.097258 6: seq: 1b, get_clock
Sent 45 210.082346 210.082346 6: seq: 1c, get_clock
Sent 46 211.067349 211.067349 6: seq: 1d, get_clock
Sent 47 212.051641 212.051641 6: seq: 1e, get_clock
Sent 48 213.036013 213.036013 6: seq: 1f, get_clock
Sent 49 214.020278 214.020278 6: seq: 10, get_clock
Sent 50 215.004538 215.004538 6: seq: 11, get_clock
Sent 51 215.988898 215.988898 6: seq: 12, get_clock
Sent 52 216.973158 216.973158 6: seq: 13, get_clock
Sent 53 217.957626 217.957626 6: seq: 14, get_clock
Sent 54 218.941912 218.941912 6: seq: 15, get_clock
Sent 55 219.926734 219.926734 6: seq: 16, get_clock
Sent 56 220.911248 220.911248 6: seq: 17, get_clock
Sent 57 221.895426 221.895426 6: seq: 18, get_clock
Sent 58 222.879755 222.879755 6: seq: 19, get_clock
Sent 59 223.864812 223.864812 6: seq: 1a, get_clock
Sent 60 224.849636 224.849636 6: seq: 1b, get_clock
Sent 61 225.833913 225.833913 6: seq: 1c, get_clock
Sent 62 226.818132 226.818132 6: seq: 1d, get_clock
Sent 63 227.802379 227.802379 6: seq: 1e, get_clock
Sent 64 228.786761 228.786761 6: seq: 1f, get_clock
Sent 65 229.771293 229.771293 6: seq: 10, get_clock
Sent 66 230.755576 230.755576 6: seq: 11, get_clock
Sent 67 231.739820 231.739820 6: seq: 12, get_clock
Sent 68 232.724468 232.724468 6: seq: 13, get_clock
Sent 69 233.709227 233.709227 6: seq: 14, get_clock
Sent 70 234.693384 234.693384 6: seq: 15, get_clock
Sent 71 235.677639 235.677639 6: seq: 16, get_clock
Sent 72 236.662586 236.662586 6: seq: 17, get_clock
Sent 73 237.652643 237.652643 6: seq: 18, get_clock
Sent 74 238.637269 238.637269 6: seq: 19, get_clock
Sent 75 239.621548 239.621548 6: seq: 1a, get_clock
Sent 76 240.605691 240.605691 6: seq: 1b, get_clock
Sent 77 241.590343 241.590343 6: seq: 1c, get_clock
Sent 78 242.575297 242.575297 6: seq: 1d, get_clock
Sent 79 243.559476 243.559476 6: seq: 1e, get_clock
Sent 80 244.543839 244.543839 6: seq: 1f, get_clock
Sent 81 245.528521 245.528521 6: seq: 10, get_clock
Sent 82 246.513295 246.513295 6: seq: 11, get_clock
Sent 83 247.497372 247.497372 6: seq: 12, get_clock
Sent 84 248.481557 248.481557 6: seq: 13, get_clock
Sent 85 248.987310 248.987310 14: seq: 14, beacon_set_threshold trigger=44039420 untrigger=43775184
Sent 86 248.987471 248.987471 7: seq: 15, beacon_stream en=1
Sent 87 249.466074 249.466074 6: seq: 16, get_clock
Sent 88 249.470517 249.470517 7: seq: 17, beacon_stream en=0
Sent 89 249.471272 249.471272 16: seq: 18, trsync_start oid=0 report_clock=3084082642 report_ticks=240000 expire_reason=4
Sent 90 249.471354 249.471354 12: seq: 19, trsync_set_timeout oid=0 clock=3084882642
Sent 91 249.471622 249.471622 9: seq: 1a, beacon_home trsync_oid=0 trigger_reason=1 trigger_invert=0
Sent 92 250.203214 250.203214 8: seq: 1b, trsync_trigger oid=0 reason=2
Sent 93 250.204266 250.204266 8: seq: 1c, trsync_trigger oid=0 reason=2
Sent 94 250.450851 250.450851 6: seq: 1d, get_clock
Sent 95 251.435702 251.435702 6: seq: 1e, get_clock
Sent 96 252.419986 252.419986 6: seq: 1f, get_clock
Sent 97 253.404232 253.404232 6: seq: 10, get_clock
Sent 98 253.494955 253.494955 6: seq: 11, emergency_stop
Sent 99 253.495209 253.495209 7: seq: 12, beacon_stream en=0
Dumping receive queue 100 messages
Receive: 0 249.768671 0.000000 18: seq: 14, beacon_data samples=1 start_clock=3101072612 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 1 249.826375 0.000000 16: seq: 14, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 2 249.868668 0.000000 18: seq: 14, beacon_data samples=1 start_clock=3104273406 delta_clock=0 data=b'\x82\x8f\xaa\xd7'
Receive: 3 249.926612 0.000000 16: seq: 14, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 4 249.968740 0.000000 18: seq: 14, beacon_data samples=1 start_clock=3107474201 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 5 250.026876 0.000000 16: seq: 14, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 6 250.068719 0.000000 18: seq: 14, beacon_data samples=1 start_clock=3110674996 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 7 250.126978 0.000000 16: seq: 14, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 8 250.168731 0.000000 18: seq: 14, beacon_data samples=1 start_clock=3113875787 delta_clock=0 data=b'\x82\x8f\xaa\xd7'
Receive: 9 250.189674 0.000000 11: seq: 17, clock clock=3114566858
Receive: 10 250.203170 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=1 trigger_reason=0 clock=3114591689
Receive: 11 250.203182 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114591689
Receive: 12 250.203193 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114598103
Receive: 13 250.203195 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114601912
Receive: 14 250.203197 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114605872
Receive: 15 250.203200 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114609821
Receive: 16 250.203202 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114613068
Receive: 17 250.203204 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114616315
Receive: 18 250.203206 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114619563
Receive: 19 250.203270 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114622810
Receive: 20 250.203274 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114626058
Receive: 21 250.203276 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114629855
Receive: 22 250.203664 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114633662
Receive: 23 250.203671 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114637628
Receive: 24 250.203673 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114641446
Receive: 25 250.203675 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114644689
Receive: 26 250.203677 0.000000 14: seq: 1b, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=3114647932
Receive: 27 250.203683 250.203214 10: seq: 1c, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=0
Receive: 28 250.204684 250.204266 10: seq: 1d, trsync_state oid=0 can_trigger=0 trigger_reason=4 clock=0
Receive: 29 250.227145 250.204266 16: seq: 1d, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 30 250.268774 250.204266 18: seq: 1d, beacon_data samples=1 start_clock=3117076590 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 31 250.327349 250.204266 16: seq: 1d, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 32 250.368779 250.204266 18: seq: 1d, beacon_data samples=1 start_clock=3120277377 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 33 250.427537 250.204266 16: seq: 1d, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 34 250.451253 250.450851 11: seq: 1e, clock clock=3122946933
Receive: 35 250.468794 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3123478178 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 36 250.527747 250.450851 16: seq: 1e, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 37 250.568843 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3126678970 delta_clock=0 data=b'\x82\x8f\xab}'
Receive: 38 250.627958 250.450851 16: seq: 1e, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51936 status=1
Receive: 39 250.668860 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3129879757 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 40 250.728128 250.450851 16: seq: 1e, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51937 status=1
Receive: 41 250.768902 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3133080554 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 42 250.828321 250.450851 16: seq: 1e, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51937 status=1
Receive: 43 250.868962 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3136281347 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 44 250.928507 250.450851 16: seq: 1e, beacon_status mcu_temp=44940 supply_voltage=49473 coil_temp=51937 status=1
Receive: 45 250.968991 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3139482143 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 46 251.028701 250.450851 16: seq: 1e, beacon_status mcu_temp=44941 supply_voltage=49473 coil_temp=51937 status=1
Receive: 47 251.068984 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3142682928 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 48 251.128896 250.450851 16: seq: 1e, beacon_status mcu_temp=44941 supply_voltage=49473 coil_temp=51937 status=1
Receive: 49 251.169004 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3145883730 delta_clock=0 data=b'\x82\x8f\xaa\xd7'
Receive: 50 251.229088 250.450851 16: seq: 1e, beacon_status mcu_temp=44941 supply_voltage=49473 coil_temp=51938 status=1
Receive: 51 251.269032 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3149084527 delta_clock=0 data=b'\x82\x8f\xaa\xd7'
Receive: 52 251.329276 250.450851 16: seq: 1e, beacon_status mcu_temp=44941 supply_voltage=49473 coil_temp=51938 status=1
Receive: 53 251.369034 250.450851 18: seq: 1e, beacon_data samples=1 start_clock=3152285324 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 54 251.429443 250.450851 16: seq: 1e, beacon_status mcu_temp=44941 supply_voltage=49473 coil_temp=51938 status=1
Receive: 55 251.436152 251.435702 11: seq: 1f, clock clock=3154463797
Receive: 56 251.469073 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3155486118 delta_clock=0 data=b'\x82\x8f\xaa\xd7'
Receive: 57 251.529681 251.435702 16: seq: 1f, beacon_status mcu_temp=44942 supply_voltage=49472 coil_temp=51938 status=1
Receive: 58 251.569087 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3158686911 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 59 251.629851 251.435702 16: seq: 1f, beacon_status mcu_temp=44942 supply_voltage=49472 coil_temp=51937 status=1
Receive: 60 251.669104 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3161887709 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 61 251.730097 251.435702 16: seq: 1f, beacon_status mcu_temp=44942 supply_voltage=49472 coil_temp=51937 status=1
Receive: 62 251.769169 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3165088516 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 63 251.830258 251.435702 16: seq: 1f, beacon_status mcu_temp=44942 supply_voltage=49472 coil_temp=51937 status=1
Receive: 64 251.869169 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3168289308 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 65 251.930436 251.435702 16: seq: 1f, beacon_status mcu_temp=44942 supply_voltage=49472 coil_temp=51937 status=1
Receive: 66 251.969204 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3171490107 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 67 252.030610 251.435702 16: seq: 1f, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51937 status=1
Receive: 68 252.069242 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3174690894 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 69 252.130797 251.435702 16: seq: 1f, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 70 252.169256 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3177891688 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 71 252.230985 251.435702 16: seq: 1f, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 72 252.269297 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3181092483 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 73 252.331197 251.435702 16: seq: 1f, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 74 252.369315 251.435702 18: seq: 1f, beacon_data samples=1 start_clock=3184293276 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 75 252.420456 252.419986 11: seq: 10, clock clock=3185961122
Receive: 76 252.431378 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 77 252.469333 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3187494075 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 78 252.531615 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 79 252.569351 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3190694862 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 80 252.631762 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 81 252.669374 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3193895662 delta_clock=0 data=b'\x82\x8f\xa87'
Receive: 82 252.731938 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 83 252.769412 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3197096462 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 84 252.832161 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 85 252.869419 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3200297255 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 86 252.932349 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 87 252.969476 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3203498052 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 88 253.032586 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 89 253.069494 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3206698850 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 90 253.132744 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 91 253.169487 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3209899642 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 92 253.232929 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 93 253.269557 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3213100437 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 94 253.333110 252.419986 16: seq: 10, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 95 253.369541 252.419986 18: seq: 10, beacon_data samples=1 start_clock=3216301232 delta_clock=0 data=b'\x82\x8f\xa8\xdd'
Receive: 96 253.404640 253.404232 11: seq: 11, clock clock=3217455456
Receive: 97 253.433325 253.404232 16: seq: 11, beacon_status mcu_temp=44943 supply_voltage=49472 coil_temp=51936 status=1
Receive: 98 253.469593 253.404232 18: seq: 11, beacon_data samples=1 start_clock=3219502027 delta_clock=0 data=b'\x82\x8f\xab}'
Receive: 99 253.495394 253.494955 12: seq: 12, shutdown clock=3220358145 static_string_id=Emergency stop
MCU 'toolboard_t1' shutdown: Command request
clocksync state: mcu_freq=64000000 last_clock=6420115087 clock_est=(225.764 4671974504 63999919.489) min_half_rtt=0.000073 min_rtt_time=161.963 time_avg=225.764(615.446) clock_avg=4671974504.480(39388509164.706) pred_variance=150270522.363 clock_adj=(-1.312 63999518.500)
Dumping serial stats: bytes_write=2688 bytes_read=15971 bytes_retransmit=9 bytes_invalid=0 send_seq=302 receive_seq=302 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 204.842440 204.842440 6: seq: 1a, get_clock
Sent 1 205.826581 205.826581 6: seq: 1b, get_clock
Sent 2 206.811984 206.811984 6: seq: 1c, get_clock
Sent 3 207.795977 207.795977 6: seq: 1d, get_clock
Sent 4 208.780850 208.780850 6: seq: 1e, get_clock
Sent 5 209.764686 209.764686 6: seq: 1f, get_clock
Sent 6 210.748941 210.748941 6: seq: 10, get_clock
Sent 7 211.733149 211.733149 6: seq: 11, get_clock
Sent 8 212.717373 212.717373 6: seq: 12, get_clock
Sent 9 213.701524 213.701524 6: seq: 13, get_clock
Sent 10 214.685957 214.685957 6: seq: 14, get_clock
Sent 11 215.671192 215.671192 6: seq: 15, get_clock
Sent 12 216.655512 216.655512 6: seq: 16, get_clock
Sent 13 217.641220 217.641220 6: seq: 17, get_clock
Sent 14 218.625149 218.625149 6: seq: 18, get_clock
Sent 15 219.609614 219.609614 6: seq: 19, get_clock
Sent 16 220.593048 220.593048 6: seq: 1a, get_clock
Sent 17 221.577445 221.577445 6: seq: 1b, get_clock
Sent 18 222.561833 222.561833 6: seq: 1c, get_clock
Sent 19 223.547086 223.547086 6: seq: 1d, get_clock
Sent 20 224.531321 224.531321 6: seq: 1e, get_clock
Sent 21 225.516823 225.516823 6: seq: 1f, get_clock
Sent 22 226.501298 226.501298 6: seq: 10, get_clock
Sent 23 227.486280 227.486280 6: seq: 11, get_clock
Sent 24 228.470543 228.470543 6: seq: 12, get_clock
Sent 25 229.454140 229.454140 6: seq: 13, get_clock
Sent 26 230.438376 230.438376 6: seq: 14, get_clock
Sent 27 231.422664 231.422664 6: seq: 15, get_clock
Sent 28 232.406936 232.406936 6: seq: 16, get_clock
Sent 29 233.391708 233.391708 6: seq: 17, get_clock
Sent 30 234.376439 234.376439 6: seq: 18, get_clock
Sent 31 235.360831 235.360831 6: seq: 19, get_clock
Sent 32 236.345201 236.345201 6: seq: 1a, get_clock
Sent 33 237.329108 237.329108 6: seq: 1b, get_clock
Sent 34 238.313328 238.313328 6: seq: 1c, get_clock
Sent 35 239.297583 239.297583 6: seq: 1d, get_clock
Sent 36 240.282546 240.282546 6: seq: 1e, get_clock
Sent 37 241.266942 241.266942 6: seq: 1f, get_clock
Sent 38 242.250964 242.250964 6: seq: 10, get_clock
Sent 39 243.235716 243.235716 6: seq: 11, get_clock
Sent 40 244.219684 244.219684 6: seq: 12, get_clock
Sent 41 245.203912 245.203912 6: seq: 13, get_clock
Sent 42 246.188804 246.188804 6: seq: 14, get_clock
Sent 43 246.862358 246.862358 38: seq: 15, trsync_start oid=4 report_clock=1743176395 report_ticks=480000 expire_reason=4, trsync_set_timeout oid=4 clock=1744776395, endstop_home oid=3 clock=1743176395 sample_ticks=960 sample_count=4 rest_ticks=4000 pin_value=1 trsync_oid=4 trigger_reason=1
Sent 44 247.110234 247.110234 12: seq: 16, trsync_set_timeout oid=4 clock=1744773402
Sent 45 247.121466 247.121466 12: seq: 17, trsync_set_timeout oid=4 clock=1745493667
Sent 46 247.128911 247.128911 12: seq: 18, trsync_set_timeout oid=4 clock=1745973665
Sent 47 247.136468 247.136468 12: seq: 19, trsync_set_timeout oid=4 clock=1746453661
Sent 48 247.143915 247.143915 12: seq: 1a, trsync_set_timeout oid=4 clock=1746933663
Sent 49 247.151480 247.151480 12: seq: 1b, trsync_set_timeout oid=4 clock=1747413660
Sent 50 247.158908 247.158908 12: seq: 1c, trsync_set_timeout oid=4 clock=1747893658
Sent 51 247.166477 247.166477 12: seq: 1d, trsync_set_timeout oid=4 clock=1748373656
Sent 52 247.172775 247.172775 6: seq: 1e, get_clock
Sent 53 247.173917 247.173917 12: seq: 1f, trsync_set_timeout oid=4 clock=1748853295
Sent 54 247.181482 247.181482 12: seq: 10, trsync_set_timeout oid=4 clock=1749333723
Sent 55 247.182296 247.182296 8: seq: 11, trsync_trigger oid=4 reason=2
Sent 56 247.183126 247.183126 14: seq: 12, endstop_home oid=3 clock=0 sample_ticks=0 sample_count=0 rest_ticks=0 pin_value=0 trsync_oid=0 trigger_reason=0
Sent 57 247.183186 247.183186 8: seq: 13, trsync_trigger oid=4 reason=2
Sent 58 247.204657 247.204657 7: seq: 14, endstop_query_state oid=3
Sent 59 247.519881 247.519881 38: seq: 15, trsync_start oid=4 report_clock=1785232516 report_ticks=480000 expire_reason=4, trsync_set_timeout oid=4 clock=1786832516, endstop_home oid=3 clock=1785232516 sample_ticks=960 sample_count=4 rest_ticks=8000 pin_value=1 trsync_oid=4 trigger_reason=1
Sent 60 247.767362 247.767362 12: seq: 16, trsync_set_timeout oid=4 clock=1786829751
Sent 61 247.778557 247.778557 12: seq: 17, trsync_set_timeout oid=4 clock=1787550013
Sent 62 247.786045 247.786045 12: seq: 18, trsync_set_timeout oid=4 clock=1788030026
Sent 63 247.793644 247.793644 12: seq: 19, trsync_set_timeout oid=4 clock=1788510010
Sent 64 247.801044 247.801044 12: seq: 1a, trsync_set_timeout oid=4 clock=1788990012
Sent 65 247.808573 247.808573 12: seq: 1b, trsync_set_timeout oid=4 clock=1789470010
Sent 66 247.816044 247.816044 12: seq: 1c, trsync_set_timeout oid=4 clock=1789950007
Sent 67 247.823590 247.823590 12: seq: 1d, trsync_set_timeout oid=4 clock=1790430005
Sent 68 247.831045 247.831045 12: seq: 1e, trsync_set_timeout oid=4 clock=1790910003
Sent 69 247.838582 247.838582 12: seq: 1f, trsync_set_timeout oid=4 clock=1791390004
Sent 70 247.846076 247.846076 12: seq: 10, trsync_set_timeout oid=4 clock=1791869998
Sent 71 247.853587 247.853587 12: seq: 11, trsync_set_timeout oid=4 clock=1792349996
Sent 72 247.861043 247.861043 12: seq: 12, trsync_set_timeout oid=4 clock=1792829994
Sent 73 247.868596 247.868596 12: seq: 13, trsync_set_timeout oid=4 clock=1793309991
Sent 74 247.876051 247.876051 12: seq: 14, trsync_set_timeout oid=4 clock=1793789982
Sent 75 247.883596 247.883596 12: seq: 15, trsync_set_timeout oid=4 clock=1794269987
Sent 76 247.891073 247.891073 12: seq: 16, trsync_set_timeout oid=4 clock=1794749984
Sent 77 247.898595 247.898595 12: seq: 17, trsync_set_timeout oid=4 clock=1795229982
Sent 78 247.906038 247.906038 12: seq: 18, trsync_set_timeout oid=4 clock=1795709980
Sent 79 247.913590 247.913590 12: seq: 19, trsync_set_timeout oid=4 clock=1796189977
Sent 80 247.921049 247.921049 12: seq: 1a, trsync_set_timeout oid=4 clock=1796669975
Sent 81 247.928587 247.928587 12: seq: 1b, trsync_set_timeout oid=4 clock=1797149976
Sent 82 247.936066 247.936066 12: seq: 1c, trsync_set_timeout oid=4 clock=1797629965
Sent 83 247.943604 247.943604 12: seq: 1d, trsync_set_timeout oid=4 clock=1798109968
Sent 84 247.951125 247.951125 12: seq: 1e, trsync_set_timeout oid=4 clock=1798589966
Sent 85 247.958638 247.958638 12: seq: 1f, trsync_set_timeout oid=4 clock=1799069964
Sent 86 247.966049 247.966049 12: seq: 10, trsync_set_timeout oid=4 clock=1799549961
Sent 87 247.973610 247.973610 12: seq: 11, trsync_set_timeout oid=4 clock=1800029963
Sent 88 247.981036 247.981036 12: seq: 12, trsync_set_timeout oid=4 clock=1800509957
Sent 89 247.988623 247.988623 15: seq: 13, trsync_set_timeout oid=4 clock=1800989954, trsync_trigger oid=4 reason=2
Sent 90 247.989295 247.989295 14: seq: 14, endstop_home oid=3 clock=0 sample_ticks=0 sample_count=0 rest_ticks=0 pin_value=0 trsync_oid=0 trigger_reason=0
Sent 91 247.989389 247.989389 8: seq: 15, trsync_trigger oid=4 reason=2
Sent 92 247.995027 247.995027 7: seq: 16, endstop_query_state oid=3
Sent 93 248.157347 248.157347 6: seq: 17, get_clock
Sent 94 249.141650 249.141650 6: seq: 18, get_clock
Sent 95 250.125696 250.125696 6: seq: 19, get_clock
Sent 96 251.109773 251.109773 6: seq: 1a, get_clock
Sent 97 252.094027 252.094027 6: seq: 1b, get_clock
Sent 98 253.078285 253.078285 6: seq: 1c, get_clock
Sent 99 253.494651 253.494651 6: seq: 1d, emergency_stop
Dumping receive queue 100 messages
Receive: 0 246.982589 246.862358 14: seq: 16, analog_in_state oid=10 next_clock=1753757404 value=11049
Receive: 1 247.110200 246.862358 14: seq: 16, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1743176950
Receive: 2 247.117665 247.110234 14: seq: 17, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1743656958
Receive: 3 247.125167 247.121466 14: seq: 18, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1744136958
Receive: 4 247.132646 247.128911 14: seq: 19, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1744616958
Receive: 5 247.140181 247.136468 14: seq: 1a, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1745096958
Receive: 6 247.147654 247.143915 14: seq: 1b, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1745576958
Receive: 7 247.155188 247.151480 14: seq: 1c, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1746056958
Receive: 8 247.162673 247.158908 14: seq: 1d, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1746536966
Receive: 9 247.170164 247.166477 14: seq: 1e, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1747016958
Receive: 10 247.172941 247.172775 11: seq: 1f, clock clock=1747194907
Receive: 11 247.177653 247.173917 14: seq: 10, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1747496958
Receive: 12 247.182272 247.181482 14: seq: 11, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=1747791751
Receive: 13 247.182531 247.182296 10: seq: 12, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 14 247.183351 247.183186 10: seq: 14, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 15 247.204854 247.204657 14: seq: 15, endstop_state oid=3 homing=0 next_clock=1747792395 pin_value=1
Receive: 16 247.242575 247.204657 14: seq: 15, analog_in_state oid=6 next_clock=1770397404 value=7567
Receive: 17 247.282600 247.204657 14: seq: 15, analog_in_state oid=10 next_clock=1772957404 value=11049
Receive: 18 247.542589 247.519881 14: seq: 16, analog_in_state oid=6 next_clock=1789597404 value=7567
Receive: 19 247.582591 247.519881 14: seq: 16, analog_in_state oid=10 next_clock=1792157404 value=11055
Receive: 20 247.767332 247.519881 14: seq: 16, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1785233071
Receive: 21 247.774801 247.767362 14: seq: 17, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1785713079
Receive: 22 247.782282 247.778557 14: seq: 18, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1786193079
Receive: 23 247.789807 247.786045 14: seq: 19, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1786673079
Receive: 24 247.797304 247.793644 14: seq: 1a, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1787153079
Receive: 25 247.804799 247.801044 14: seq: 1b, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1787633079
Receive: 26 247.812319 247.808573 14: seq: 1c, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1788113079
Receive: 27 247.819814 247.816044 14: seq: 1d, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1788593079
Receive: 28 247.827318 247.823590 14: seq: 1e, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1789073079
Receive: 29 247.834811 247.831045 14: seq: 1f, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1789553087
Receive: 30 247.842320 247.838582 14: seq: 10, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1790033087
Receive: 31 247.842587 247.838582 14: seq: 10, analog_in_state oid=6 next_clock=1808797404 value=7564
Receive: 32 247.849826 247.846076 14: seq: 11, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1790513079
Receive: 33 247.857307 247.853587 14: seq: 12, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1790993087
Receive: 34 247.864786 247.861043 14: seq: 13, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1791473079
Receive: 35 247.872338 247.868596 14: seq: 14, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1791953087
Receive: 36 247.879834 247.876051 14: seq: 15, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1792433060
Receive: 37 247.882571 247.876051 14: seq: 15, analog_in_state oid=10 next_clock=1811357404 value=11048
Receive: 38 247.887328 247.883596 14: seq: 16, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1792913079
Receive: 39 247.894792 247.891073 14: seq: 17, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1793393079
Receive: 40 247.902333 247.898595 14: seq: 18, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1793873079
Receive: 41 247.909787 247.906038 14: seq: 19, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1794353079
Receive: 42 247.917289 247.913590 14: seq: 1a, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1794833079
Receive: 43 247.924807 247.921049 14: seq: 1b, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1795313079
Receive: 44 247.932340 247.928587 14: seq: 1c, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1795793079
Receive: 45 247.939793 247.936066 14: seq: 1d, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1796273079
Receive: 46 247.947319 247.943604 14: seq: 1e, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1796753079
Receive: 47 247.954842 247.951125 14: seq: 1f, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1797233079
Receive: 48 247.962286 247.958638 14: seq: 10, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1797713087
Receive: 49 247.969812 247.966049 14: seq: 11, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1798193079
Receive: 50 247.977292 247.973610 14: seq: 12, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1798673079
Receive: 51 247.984805 247.981036 14: seq: 13, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1799153079
Receive: 52 247.988630 247.981036 14: seq: 13, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=1799395872
Receive: 53 247.988883 247.988623 10: seq: 14, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 54 247.989553 247.989389 10: seq: 16, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 55 247.995197 247.995027 14: seq: 17, endstop_state oid=3 homing=0 next_clock=1799400516 pin_value=1
Receive: 56 248.142590 247.995027 14: seq: 17, analog_in_state oid=6 next_clock=1827997404 value=7566
Receive: 57 248.157626 248.157347 11: seq: 18, clock clock=1810208406
Receive: 58 248.182601 248.157347 14: seq: 18, analog_in_state oid=10 next_clock=1830557404 value=11050
Receive: 59 248.442641 248.157347 14: seq: 18, analog_in_state oid=6 next_clock=1847197404 value=7564
Receive: 60 248.482804 248.157347 14: seq: 18, analog_in_state oid=10 next_clock=1849757404 value=11052
Receive: 61 248.742643 248.157347 14: seq: 18, analog_in_state oid=6 next_clock=1866397404 value=7564
Receive: 62 248.782637 248.157347 14: seq: 18, analog_in_state oid=10 next_clock=1868957404 value=11050
Receive: 63 248.964383 248.157347 15: seq: 18, stats count=442 sum=468624 sumsq=2807089
Receive: 64 249.042587 248.157347 14: seq: 18, analog_in_state oid=6 next_clock=1885597404 value=7566
Receive: 65 249.082571 248.157347 14: seq: 18, analog_in_state oid=10 next_clock=1888157404 value=11050
Receive: 66 249.141900 249.141650 11: seq: 19, clock clock=1873209747
Receive: 67 249.342579 249.141650 14: seq: 19, analog_in_state oid=6 next_clock=1904797404 value=7565
Receive: 68 249.382567 249.141650 14: seq: 19, analog_in_state oid=10 next_clock=1907357404 value=11052
Receive: 69 249.642571 249.141650 14: seq: 19, analog_in_state oid=6 next_clock=1923997404 value=7568
Receive: 70 249.682576 249.141650 14: seq: 19, analog_in_state oid=10 next_clock=1926557404 value=11050
Receive: 71 249.942609 249.141650 14: seq: 19, analog_in_state oid=6 next_clock=1943197404 value=7564
Receive: 72 249.982609 249.141650 14: seq: 19, analog_in_state oid=10 next_clock=1945757404 value=11050
Receive: 73 250.125968 250.125696 11: seq: 1a, clock clock=1936185648
Receive: 74 250.242586 250.125696 14: seq: 1a, analog_in_state oid=6 next_clock=1962397404 value=7568
Receive: 75 250.282579 250.125696 14: seq: 1a, analog_in_state oid=10 next_clock=1964957404 value=11049
Receive: 76 250.542588 250.125696 14: seq: 1a, analog_in_state oid=6 next_clock=1981597404 value=7567
Receive: 77 250.582567 250.125696 14: seq: 1a, analog_in_state oid=10 next_clock=1984157404 value=11051
Receive: 78 250.842576 250.125696 14: seq: 1a, analog_in_state oid=6 next_clock=2000797404 value=7563
Receive: 79 250.882589 250.125696 14: seq: 1a, analog_in_state oid=10 next_clock=2003357404 value=11047
Receive: 80 251.109991 251.109773 11: seq: 1b, clock clock=1999163303
Receive: 81 251.142581 251.109773 14: seq: 1b, analog_in_state oid=6 next_clock=2019997404 value=7563
Receive: 82 251.182582 251.109773 14: seq: 1b, analog_in_state oid=10 next_clock=2022557404 value=11048
Receive: 83 251.442577 251.109773 14: seq: 1b, analog_in_state oid=6 next_clock=2039197404 value=7566
Receive: 84 251.482570 251.109773 14: seq: 1b, analog_in_state oid=10 next_clock=2041757404 value=11049
Receive: 85 251.742610 251.109773 14: seq: 1b, analog_in_state oid=6 next_clock=2058397404 value=7567
Receive: 86 251.782570 251.109773 14: seq: 1b, analog_in_state oid=10 next_clock=2060957404 value=11050
Receive: 87 252.042575 251.109773 14: seq: 1b, analog_in_state oid=6 next_clock=2077597404 value=7563
Receive: 88 252.082582 251.109773 14: seq: 1b, analog_in_state oid=10 next_clock=2080157404 value=11051
Receive: 89 252.094282 252.094027 11: seq: 1c, clock clock=2062155498
Receive: 90 252.342573 252.094027 14: seq: 1c, analog_in_state oid=6 next_clock=2096797404 value=7570
Receive: 91 252.382572 252.094027 14: seq: 1c, analog_in_state oid=10 next_clock=2099357404 value=11056
Receive: 92 252.642601 252.094027 14: seq: 1c, analog_in_state oid=6 next_clock=2115997404 value=7563
Receive: 93 252.682576 252.094027 14: seq: 1c, analog_in_state oid=10 next_clock=2118557404 value=11051
Receive: 94 252.942574 252.094027 14: seq: 1c, analog_in_state oid=6 next_clock=2135197404 value=7566
Receive: 95 252.982577 252.094027 14: seq: 1c, analog_in_state oid=10 next_clock=2137757404 value=11050
Receive: 96 253.078526 253.078285 11: seq: 1d, clock clock=2125147791
Receive: 97 253.242583 253.078285 14: seq: 1d, analog_in_state oid=6 next_clock=2154397404 value=7567
Receive: 98 253.282584 253.078285 14: seq: 1d, analog_in_state oid=10 next_clock=2156957404 value=11050
Receive: 99 253.495017 253.494651 12: seq: 1e, shutdown clock=2151795351 static_string_id=Command request
MCU 'toolboard_t0' shutdown: Command request
clocksync state: mcu_freq=64000000 last_clock=6425796534 clock_est=(225.802 4675673161 63999928.114) min_half_rtt=0.000074 min_rtt_time=161.574 time_avg=225.802(619.086) clock_avg=4675673161.291(39621450669.594) pred_variance=132663362.293 clock_adj=(-1.331 63999520.750)
Dumping serial stats: bytes_write=5114 bytes_read=19829 bytes_retransmit=9 bytes_invalid=0 send_seq=500 receive_seq=500 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 245.801038 245.801038 12: seq: 10, trsync_set_timeout oid=4 clock=1662244927
Sent 1 245.808563 245.808563 12: seq: 11, trsync_set_timeout oid=4 clock=1662724924
Sent 2 245.816043 245.816043 12: seq: 12, trsync_set_timeout oid=4 clock=1663204922
Sent 3 245.823555 245.823555 12: seq: 13, trsync_set_timeout oid=4 clock=1663684920
Sent 4 245.831069 245.831069 12: seq: 14, trsync_set_timeout oid=4 clock=1664164918
Sent 5 245.838535 245.838535 12: seq: 15, trsync_set_timeout oid=4 clock=1664644915
Sent 6 245.846051 245.846051 12: seq: 16, trsync_set_timeout oid=4 clock=1665124913
Sent 7 245.853526 245.853526 12: seq: 17, trsync_set_timeout oid=4 clock=1665604911
Sent 8 245.861059 245.861059 12: seq: 18, trsync_set_timeout oid=4 clock=1666084909
Sent 9 245.868552 245.868552 12: seq: 19, trsync_set_timeout oid=4 clock=1666564910
Sent 10 245.876062 245.876062 12: seq: 1a, trsync_set_timeout oid=4 clock=1667044897
Sent 11 245.883814 245.883814 12: seq: 1b, trsync_set_timeout oid=4 clock=1667524902
Sent 12 245.891046 245.891046 12: seq: 1c, trsync_set_timeout oid=4 clock=1668004900
Sent 13 245.898534 245.898534 12: seq: 1d, trsync_set_timeout oid=4 clock=1668484897
Sent 14 245.906038 245.906038 12: seq: 1e, trsync_set_timeout oid=4 clock=1668964895
Sent 15 245.913540 245.913540 12: seq: 1f, trsync_set_timeout oid=4 clock=1669444896
Sent 16 245.921049 245.921049 12: seq: 10, trsync_set_timeout oid=4 clock=1669924892
Sent 17 245.928529 245.928529 12: seq: 11, trsync_set_timeout oid=4 clock=1670404886
Sent 18 245.936059 245.936059 12: seq: 12, trsync_set_timeout oid=4 clock=1670884886
Sent 19 245.943557 245.943557 12: seq: 13, trsync_set_timeout oid=4 clock=1671364884
Sent 20 245.951223 245.951223 12: seq: 14, trsync_set_timeout oid=4 clock=1671844882
Sent 21 245.958523 245.958523 12: seq: 15, trsync_set_timeout oid=4 clock=1672324879
Sent 22 245.966047 245.966047 12: seq: 16, trsync_set_timeout oid=4 clock=1672804877
Sent 23 245.973515 245.973515 12: seq: 17, trsync_set_timeout oid=4 clock=1673284882
Sent 24 245.981020 245.981020 12: seq: 18, trsync_set_timeout oid=4 clock=1673764873
Sent 25 245.988541 245.988541 12: seq: 19, trsync_set_timeout oid=4 clock=1674244870
Sent 26 245.996036 245.996036 12: seq: 1a, trsync_set_timeout oid=4 clock=1674724868
Sent 27 246.003540 246.003540 12: seq: 1b, trsync_set_timeout oid=4 clock=1675204866
Sent 28 246.011024 246.011024 12: seq: 1c, trsync_set_timeout oid=4 clock=1675684864
Sent 29 246.018545 246.018545 12: seq: 1d, trsync_set_timeout oid=4 clock=1676164861
Sent 30 246.026111 246.026111 12: seq: 1e, trsync_set_timeout oid=4 clock=1676644859
Sent 31 246.033601 246.033601 12: seq: 1f, trsync_set_timeout oid=4 clock=1677124853
Sent 32 246.041098 246.041098 12: seq: 10, trsync_set_timeout oid=4 clock=1677604855
Sent 33 246.048588 246.048588 12: seq: 11, trsync_set_timeout oid=4 clock=1678084852
Sent 34 246.056097 246.056097 12: seq: 12, trsync_set_timeout oid=4 clock=1678564850
Sent 35 246.063584 246.063584 12: seq: 13, trsync_set_timeout oid=4 clock=1679044851
Sent 36 246.071153 246.071153 12: seq: 14, trsync_set_timeout oid=4 clock=1679524843
Sent 37 246.078593 246.078593 12: seq: 15, trsync_set_timeout oid=4 clock=1680004837
Sent 38 246.086125 246.086125 12: seq: 16, trsync_set_timeout oid=4 clock=1680484841
Sent 39 246.093593 246.093593 12: seq: 17, trsync_set_timeout oid=4 clock=1680964839
Sent 40 246.101108 246.101108 12: seq: 18, trsync_set_timeout oid=4 clock=1681444837
Sent 41 246.108598 246.108598 12: seq: 19, trsync_set_timeout oid=4 clock=1681924834
Sent 42 246.116112 246.116112 12: seq: 1a, trsync_set_timeout oid=4 clock=1682404832
Sent 43 246.123590 246.123590 12: seq: 1b, trsync_set_timeout oid=4 clock=1682884830
Sent 44 246.131099 246.131099 12: seq: 1c, trsync_set_timeout oid=4 clock=1683364828
Sent 45 246.138601 246.138601 12: seq: 1d, trsync_set_timeout oid=4 clock=1683844825
Sent 46 246.146099 246.146099 12: seq: 1e, trsync_set_timeout oid=4 clock=1684324823
Sent 47 246.153573 246.153573 12: seq: 1f, trsync_set_timeout oid=4 clock=1684804821
Sent 48 246.161081 246.161081 12: seq: 10, trsync_set_timeout oid=4 clock=1685284822
Sent 49 246.168632 246.168632 12: seq: 11, trsync_set_timeout oid=4 clock=1685764820
Sent 50 246.176122 246.176122 12: seq: 12, trsync_set_timeout oid=4 clock=1686244812
Sent 51 246.183608 246.183608 12: seq: 13, trsync_set_timeout oid=4 clock=1686724807
Sent 52 246.191056 246.191056 12: seq: 14, trsync_set_timeout oid=4 clock=1687204474
Sent 53 246.198632 246.198632 12: seq: 15, trsync_set_timeout oid=4 clock=1687684472
Sent 54 246.201698 246.201698 8: seq: 16, trsync_trigger oid=4 reason=2
Sent 55 246.202529 246.202529 14: seq: 17, endstop_home oid=3 clock=0 sample_ticks=0 sample_count=0 rest_ticks=0 pin_value=0 trsync_oid=0 trigger_reason=0
Sent 56 246.202638 246.202638 8: seq: 18, trsync_trigger oid=4 reason=2
Sent 57 246.208959 246.208959 7: seq: 19, endstop_query_state oid=3
Sent 58 246.255380 246.255380 39: seq: 1a, get_clock, trsync_start oid=4 report_clock=1712935808 report_ticks=480000 expire_reason=4, trsync_set_timeout oid=4 clock=1714535808, endstop_home oid=3 clock=1712935808 sample_ticks=960 sample_count=4 rest_ticks=8000 pin_value=1 trsync_oid=4 trigger_reason=1
Sent 59 246.618373 246.618373 12: seq: 1b, trsync_set_timeout oid=4 clock=1714535732
Sent 60 246.629375 246.629375 12: seq: 1c, trsync_set_timeout oid=4 clock=1715255925
Sent 61 246.636879 246.636879 12: seq: 1d, trsync_set_timeout oid=4 clock=1715735922
Sent 62 246.644390 246.644390 12: seq: 1e, trsync_set_timeout oid=4 clock=1716215906
Sent 63 246.651881 246.651881 12: seq: 1f, trsync_set_timeout oid=4 clock=1716695908
Sent 64 246.659373 246.659373 12: seq: 10, trsync_set_timeout oid=4 clock=1717175905
Sent 65 246.666915 246.666915 12: seq: 11, trsync_set_timeout oid=4 clock=1717655903
Sent 66 246.674376 246.674376 12: seq: 12, trsync_set_timeout oid=4 clock=1718135905
Sent 67 246.681996 246.681996 12: seq: 13, trsync_set_timeout oid=4 clock=1718615899
Sent 68 246.689318 246.689318 12: seq: 14, trsync_set_timeout oid=4 clock=1719095897
Sent 69 246.696821 246.696821 12: seq: 15, trsync_set_timeout oid=4 clock=1719575888
Sent 70 246.704389 246.704389 12: seq: 16, trsync_set_timeout oid=4 clock=1720056006
Sent 71 246.711822 246.711822 12: seq: 17, trsync_set_timeout oid=4 clock=1720535887
Sent 72 246.719339 246.719339 12: seq: 18, trsync_set_timeout oid=4 clock=1721015887
Sent 73 246.726857 246.726857 12: seq: 19, trsync_set_timeout oid=4 clock=1721495888
Sent 74 246.734330 246.734330 12: seq: 1a, trsync_set_timeout oid=4 clock=1721975883
Sent 75 246.741836 246.741836 12: seq: 1b, trsync_set_timeout oid=4 clock=1722455881
Sent 76 246.749346 246.749346 12: seq: 1c, trsync_set_timeout oid=4 clock=1722935879
Sent 77 246.756842 246.756842 12: seq: 1d, trsync_set_timeout oid=4 clock=1723415877
Sent 78 246.764331 246.764331 12: seq: 1e, trsync_set_timeout oid=4 clock=1723895875
Sent 79 246.771839 246.771839 12: seq: 1f, trsync_set_timeout oid=4 clock=1724375876
Sent 80 246.779333 246.779333 12: seq: 10, trsync_set_timeout oid=4 clock=1724855870
Sent 81 246.786817 246.786817 12: seq: 11, trsync_set_timeout oid=4 clock=1725335868
Sent 82 246.794329 246.794329 12: seq: 12, trsync_set_timeout oid=4 clock=1725815866
Sent 83 246.801820 246.801820 12: seq: 13, trsync_set_timeout oid=4 clock=1726295864
Sent 84 246.809330 246.809330 12: seq: 14, trsync_set_timeout oid=4 clock=1726775868
Sent 85 246.816825 246.816825 12: seq: 15, trsync_set_timeout oid=4 clock=1727255857
Sent 86 246.824364 246.824364 12: seq: 16, trsync_set_timeout oid=4 clock=1727735860
Sent 87 246.831860 246.831860 12: seq: 17, trsync_set_timeout oid=4 clock=1728215852
Sent 88 246.839345 246.839345 8: seq: 18, trsync_trigger oid=4 reason=2
Sent 89 246.840129 246.840129 14: seq: 19, endstop_home oid=3 clock=0 sample_ticks=0 sample_count=0 rest_ticks=0 pin_value=0 trsync_oid=0 trigger_reason=0
Sent 90 246.840199 246.840199 8: seq: 1a, trsync_trigger oid=4 reason=2
Sent 91 246.846026 246.846026 7: seq: 1b, endstop_query_state oid=3
Sent 92 247.240375 247.240375 6: seq: 1c, get_clock
Sent 93 248.225239 248.225239 6: seq: 1d, get_clock
Sent 94 249.209482 249.209482 6: seq: 1e, get_clock
Sent 95 250.194017 250.194017 6: seq: 1f, get_clock
Sent 96 251.178651 251.178651 6: seq: 10, get_clock
Sent 97 252.163218 252.163218 6: seq: 11, get_clock
Sent 98 253.147463 253.147463 6: seq: 12, get_clock
Sent 99 253.494314 253.494314 6: seq: 13, emergency_stop
Dumping receive queue 100 messages
Receive: 0 246.157321 246.153573 14: seq: 10, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1683446409
Receive: 1 246.164792 246.161081 14: seq: 11, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1683926409
Receive: 2 246.172317 246.168632 14: seq: 12, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1684406409
Receive: 3 246.179810 246.176122 14: seq: 13, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1684886409
Receive: 4 246.187310 246.183608 14: seq: 14, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1685366409
Receive: 5 246.194802 246.191056 14: seq: 15, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1685846409
Receive: 6 246.201510 246.198632 14: seq: 16, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=1686273202
Receive: 7 246.201940 246.201698 10: seq: 17, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 8 246.202812 246.202638 10: seq: 19, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 9 246.209135 246.208959 14: seq: 1a, endstop_state oid=3 homing=0 next_clock=1686273846 pin_value=1
Receive: 10 246.255607 246.255380 11: seq: 1b, clock clock=1689738584
Receive: 11 246.341721 246.255380 14: seq: 1b, analog_in_state oid=6 next_clock=1713996361 value=7618
Receive: 12 246.381726 246.255380 14: seq: 1b, analog_in_state oid=10 next_clock=1716556361 value=11038
Receive: 13 246.618149 246.255380 14: seq: 1b, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1712936363
Receive: 14 246.625608 246.618373 14: seq: 1c, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1713416371
Receive: 15 246.633103 246.629375 14: seq: 1d, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1713896379
Receive: 16 246.640602 246.636879 14: seq: 1e, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1714376400
Receive: 17 246.641744 246.636879 14: seq: 1e, analog_in_state oid=6 next_clock=1733196361 value=7619
Receive: 18 246.648118 246.644390 14: seq: 1f, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1714856371
Receive: 19 246.655604 246.651881 14: seq: 10, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1715336371
Receive: 20 246.663098 246.659373 14: seq: 11, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1715816371
Receive: 21 246.670585 246.666915 14: seq: 12, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1716296392
Receive: 22 246.678066 246.674376 14: seq: 13, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1716776379
Receive: 23 246.681730 246.674376 14: seq: 13, analog_in_state oid=10 next_clock=1735756361 value=11037
Receive: 24 246.685559 246.681996 14: seq: 14, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1717256371
Receive: 25 246.693055 246.689318 14: seq: 15, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1717736371
Receive: 26 246.700595 246.696821 14: seq: 16, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1718216384
Receive: 27 246.708077 246.704389 14: seq: 17, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1718696371
Receive: 28 246.715542 246.711822 14: seq: 18, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1719176371
Receive: 29 246.723061 246.719339 14: seq: 19, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1719656371
Receive: 30 246.730576 246.726857 14: seq: 1a, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1720136384
Receive: 31 246.738059 246.734330 14: seq: 1b, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1720616379
Receive: 32 246.745550 246.741836 14: seq: 1c, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1721096371
Receive: 33 246.753069 246.749346 14: seq: 1d, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1721576371
Receive: 34 246.760564 246.756842 14: seq: 1e, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1722056384
Receive: 35 246.768064 246.764331 14: seq: 1f, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1722536371
Receive: 36 246.775560 246.771839 14: seq: 10, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1723016371
Receive: 37 246.783054 246.779333 14: seq: 11, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1723496371
Receive: 38 246.790564 246.786817 14: seq: 12, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1723976384
Receive: 39 246.798062 246.794329 14: seq: 13, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1724456371
Receive: 40 246.805563 246.801820 14: seq: 14, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1724936371
Receive: 41 246.813066 246.809330 14: seq: 15, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1725416371
Receive: 42 246.820575 246.816825 14: seq: 16, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1725896384
Receive: 43 246.828081 246.824364 14: seq: 17, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1726376371
Receive: 44 246.835570 246.831860 14: seq: 18, trsync_state oid=4 can_trigger=1 trigger_reason=0 clock=1726856371
Receive: 45 246.839236 246.831860 14: seq: 18, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=1727091164
Receive: 46 246.839606 246.839345 10: seq: 19, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 47 246.840406 246.840199 10: seq: 1b, trsync_state oid=4 can_trigger=0 trigger_reason=1 clock=0
Receive: 48 246.846206 246.846026 14: seq: 1c, endstop_state oid=3 homing=0 next_clock=1727095808 pin_value=1
Receive: 49 246.941719 246.846026 14: seq: 1c, analog_in_state oid=6 next_clock=1752396361 value=7624
Receive: 50 246.981742 246.846026 14: seq: 1c, analog_in_state oid=10 next_clock=1754956361 value=11037
Receive: 51 247.240543 247.240375 11: seq: 1d, clock clock=1752776008
Receive: 52 247.241730 247.240375 14: seq: 1d, analog_in_state oid=6 next_clock=1771596361 value=7624
Receive: 53 247.281723 247.240375 14: seq: 1d, analog_in_state oid=10 next_clock=1774156361 value=11038
Receive: 54 247.541754 247.240375 14: seq: 1d, analog_in_state oid=6 next_clock=1790796361 value=7622
Receive: 55 247.581702 247.240375 14: seq: 1d, analog_in_state oid=10 next_clock=1793356361 value=11035
Receive: 56 247.841728 247.240375 14: seq: 1d, analog_in_state oid=6 next_clock=1809996361 value=7623
Receive: 57 247.881712 247.240375 14: seq: 1d, analog_in_state oid=10 next_clock=1812556361 value=11037
Receive: 58 248.141748 247.240375 14: seq: 1d, analog_in_state oid=6 next_clock=1829196361 value=7619
Receive: 59 248.181755 247.240375 14: seq: 1d, analog_in_state oid=10 next_clock=1831756361 value=11036
Receive: 60 248.225413 248.225239 11: seq: 1e, clock clock=1815807982
Receive: 61 248.644582 248.225239 16: seq: 1e, stats count=1673 sum=1846122 sumsq=11090170
Receive: 62 248.741789 248.225239 14: seq: 1e, analog_in_state oid=6 next_clock=1867596361 value=7620
Receive: 63 248.781756 248.225239 14: seq: 1e, analog_in_state oid=10 next_clock=1870156361 value=11032
Receive: 64 249.041733 248.225239 14: seq: 1e, analog_in_state oid=6 next_clock=1886796361 value=7619
Receive: 65 249.081718 248.225239 14: seq: 1e, analog_in_state oid=10 next_clock=1889356361 value=11035
Receive: 66 249.209637 249.209482 11: seq: 1f, clock clock=1878798696
Receive: 67 249.341769 249.209482 14: seq: 1f, analog_in_state oid=6 next_clock=1905996361 value=7618
Receive: 68 249.381755 249.209482 14: seq: 1f, analog_in_state oid=10 next_clock=1908556361 value=11033
Receive: 69 249.641718 249.209482 14: seq: 1f, analog_in_state oid=6 next_clock=1925196361 value=7616
Receive: 70 249.681724 249.209482 14: seq: 1f, analog_in_state oid=10 next_clock=1927756361 value=11035
Receive: 71 249.941748 249.209482 14: seq: 1f, analog_in_state oid=6 next_clock=1944396361 value=7618
Receive: 72 249.981739 249.209482 14: seq: 1f, analog_in_state oid=10 next_clock=1946956361 value=11037
Receive: 73 250.194174 250.194017 11: seq: 10, clock clock=1941808700
Receive: 74 250.241746 250.194017 14: seq: 10, analog_in_state oid=6 next_clock=1963596361 value=7624
Receive: 75 250.281721 250.194017 14: seq: 10, analog_in_state oid=10 next_clock=1966156361 value=11039
Receive: 76 250.541726 250.194017 14: seq: 10, analog_in_state oid=6 next_clock=1982796361 value=7624
Receive: 77 250.581733 250.194017 14: seq: 10, analog_in_state oid=10 next_clock=1985356361 value=11038
Receive: 78 250.841736 250.194017 14: seq: 10, analog_in_state oid=6 next_clock=2001996361 value=7621
Receive: 79 250.881739 250.194017 14: seq: 10, analog_in_state oid=10 next_clock=2004556361 value=11037
Receive: 80 251.141719 250.194017 14: seq: 10, analog_in_state oid=6 next_clock=2021196361 value=7621
Receive: 81 251.178818 251.178651 11: seq: 11, clock clock=2004825398
Receive: 82 251.181711 251.178651 14: seq: 11, analog_in_state oid=10 next_clock=2023756361 value=11035
Receive: 83 251.441711 251.178651 14: seq: 11, analog_in_state oid=6 next_clock=2040396361 value=7623
Receive: 84 251.481717 251.178651 14: seq: 11, analog_in_state oid=10 next_clock=2042956361 value=11038
Receive: 85 251.741720 251.178651 14: seq: 11, analog_in_state oid=6 next_clock=2059596361 value=7622
Receive: 86 251.781756 251.178651 14: seq: 11, analog_in_state oid=10 next_clock=2062156361 value=11038
Receive: 87 252.041737 251.178651 14: seq: 11, analog_in_state oid=6 next_clock=2078796361 value=7627
Receive: 88 252.081723 251.178651 14: seq: 11, analog_in_state oid=10 next_clock=2081356361 value=11036
Receive: 89 252.163405 252.163218 11: seq: 12, clock clock=2067837521
Receive: 90 252.341712 252.163218 14: seq: 12, analog_in_state oid=6 next_clock=2097996361 value=7625
Receive: 91 252.381726 252.163218 14: seq: 12, analog_in_state oid=10 next_clock=2100556361 value=11034
Receive: 92 252.641734 252.163218 14: seq: 12, analog_in_state oid=6 next_clock=2117196361 value=7624
Receive: 93 252.681724 252.163218 14: seq: 12, analog_in_state oid=10 next_clock=2119756361 value=11039
Receive: 94 252.941720 252.163218 14: seq: 12, analog_in_state oid=6 next_clock=2136396361 value=7622
Receive: 95 252.981722 252.163218 14: seq: 12, analog_in_state oid=10 next_clock=2138956361 value=11036
Receive: 96 253.147635 253.147463 11: seq: 13, clock clock=2130829238
Receive: 97 253.241707 253.147463 14: seq: 13, analog_in_state oid=6 next_clock=2155596361 value=7632
Receive: 98 253.281721 253.147463 14: seq: 13, analog_in_state oid=10 next_clock=2158156361 value=11034
Receive: 99 253.494746 253.494314 12: seq: 14, shutdown clock=2153028551 static_string_id=Command request
MCU 'rpi' shutdown: Command request
clocksync state: mcu_freq=50000000 last_clock=5003908671 clock_est=(225.707 3635362870 50000056.477) min_half_rtt=0.000046 min_rtt_time=160.678 time_avg=225.707(622.660) clock_avg=3635362870.585(31133020877.344) pred_variance=90715520.685 clock_adj=(-1.075 49999644.750)
Dumping serial stats: bytes_write=1459 bytes_read=6559 bytes_retransmit=0 bytes_invalid=0 send_seq=213 receive_seq=213 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0
Dumping send queue 100 messages
Sent 0 162.829500 162.829500 6: seq: 11, get_config
Sent 1 162.830284 162.830284 7: seq: 12, allocate_oids count=1
Sent 2 162.830423 162.830423 11: seq: 13, config_digital_out oid=0 pin=gpiochip0/gpio4 value=0 default_value=1 max_duration=0
Sent 3 162.830503 162.830503 10: seq: 14, set_digital_out_pwm_cycle oid=0 cycle_ticks=500000
Sent 4 162.830531 162.830531 11: seq: 15, finalize_config crc=2738712656
Sent 5 162.830582 162.830582 13: seq: 16, queue_digital_out oid=0 clock=501471553 on_ticks=0
Sent 6 162.830648 162.830648 6: seq: 17, get_config
Sent 7 162.961209 162.961209 6: seq: 18, get_clock
Sent 8 163.945766 163.945766 6: seq: 19, get_clock
Sent 9 164.930543 164.930543 6: seq: 1a, get_clock
Sent 10 166.448835 166.448835 6: seq: 1b, get_clock
Sent 11 167.433375 167.433375 6: seq: 1c, get_clock
Sent 12 168.417598 168.417598 6: seq: 1d, get_clock
Sent 13 169.402764 169.402764 6: seq: 1e, get_clock
Sent 14 170.386956 170.386956 6: seq: 1f, get_clock
Sent 15 171.371233 171.371233 6: seq: 10, get_clock
Sent 16 172.356004 172.356004 6: seq: 11, get_clock
Sent 17 173.340295 173.340295 6: seq: 12, get_clock
Sent 18 174.324343 174.324343 6: seq: 13, get_clock
Sent 19 175.308504 175.308504 6: seq: 14, get_clock
Sent 20 176.292834 176.292834 6: seq: 15, get_clock
Sent 21 177.277216 177.277216 6: seq: 16, get_clock
Sent 22 178.261162 178.261162 6: seq: 17, get_clock
Sent 23 179.245298 179.245298 6: seq: 18, get_clock
Sent 24 180.229572 180.229572 6: seq: 19, get_clock
Sent 25 181.213869 181.213869 6: seq: 1a, get_clock
Sent 26 182.198169 182.198169 6: seq: 1b, get_clock
Sent 27 183.182456 183.182456 6: seq: 1c, get_clock
Sent 28 184.166507 184.166507 6: seq: 1d, get_clock
Sent 29 185.151188 185.151188 6: seq: 1e, get_clock
Sent 30 186.136157 186.136157 6: seq: 1f, get_clock
Sent 31 187.120249 187.120249 6: seq: 10, get_clock
Sent 32 188.104590 188.104590 6: seq: 11, get_clock
Sent 33 189.089173 189.089173 6: seq: 12, get_clock
Sent 34 190.073807 190.073807 6: seq: 13, get_clock
Sent 35 191.057427 191.057427 6: seq: 14, get_clock
Sent 36 192.041789 192.041789 6: seq: 15, get_clock
Sent 37 193.027676 193.027676 6: seq: 16, get_clock
Sent 38 194.011687 194.011687 6: seq: 17, get_clock
Sent 39 194.996093 194.996093 6: seq: 18, get_clock
Sent 40 195.980045 195.980045 6: seq: 19, get_clock
Sent 41 196.964030 196.964030 6: seq: 1a, get_clock
Sent 42 197.948684 197.948684 6: seq: 1b, get_clock
Sent 43 198.933038 198.933038 6: seq: 1c, get_clock
Sent 44 199.918410 199.918410 6: seq: 1d, get_clock
Sent 45 200.903289 200.903289 6: seq: 1e, get_clock
Sent 46 201.887185 201.887185 6: seq: 1f, get_clock
Sent 47 202.871167 202.871167 6: seq: 10, get_clock
Sent 48 203.856752 203.856752 6: seq: 11, get_clock
Sent 49 204.841790 204.841790 6: seq: 12, get_clock
Sent 50 205.826589 205.826589 6: seq: 13, get_clock
Sent 51 206.811747 206.811747 6: seq: 14, get_clock
Sent 52 207.795882 207.795882 6: seq: 15, get_clock
Sent 53 208.779938 208.779938 6: seq: 16, get_clock
Sent 54 209.764402 209.764402 6: seq: 17, get_clock
Sent 55 210.748586 210.748586 6: seq: 18, get_clock
Sent 56 211.732938 211.732938 6: seq: 19, get_clock
Sent 57 212.717018 212.717018 6: seq: 1a, get_clock
Sent 58 213.701243 213.701243 6: seq: 1b, get_clock
Sent 59 214.685877 214.685877 6: seq: 1c, get_clock
Sent 60 215.670843 215.670843 6: seq: 1d, get_clock
Sent 61 216.655497 216.655497 6: seq: 1e, get_clock
Sent 62 217.640953 217.640953 6: seq: 1f, get_clock
Sent 63 218.624888 218.624888 6: seq: 10, get_clock
Sent 64 219.609350 219.609350 6: seq: 11, get_clock
Sent 65 220.592901 220.592901 6: seq: 12, get_clock
Sent 66 221.577267 221.577267 6: seq: 13, get_clock
Sent 67 222.561652 222.561652 6: seq: 14, get_clock
Sent 68 223.546796 223.546796 6: seq: 15, get_clock
Sent 69 224.531172 224.531172 6: seq: 16, get_clock
Sent 70 225.516535 225.516535 6: seq: 17, get_clock
Sent 71 226.501263 226.501263 6: seq: 18, get_clock
Sent 72 227.486252 227.486252 6: seq: 19, get_clock
Sent 73 228.470510 228.470510 6: seq: 1a, get_clock
Sent 74 229.454102 229.454102 6: seq: 1b, get_clock
Sent 75 230.438362 230.438362 6: seq: 1c, get_clock
Sent 76 231.422654 231.422654 6: seq: 1d, get_clock
Sent 77 232.406918 232.406918 6: seq: 1e, get_clock
Sent 78 233.391449 233.391449 6: seq: 1f, get_clock
Sent 79 234.376227 234.376227 6: seq: 10, get_clock
Sent 80 235.360829 235.360829 6: seq: 11, get_clock
Sent 81 236.344981 236.344981 6: seq: 12, get_clock
Sent 82 237.329070 237.329070 6: seq: 13, get_clock
Sent 83 238.313290 238.313290 6: seq: 14, get_clock
Sent 84 239.297560 239.297560 6: seq: 15, get_clock
Sent 85 240.282276 240.282276 6: seq: 16, get_clock
Sent 86 241.266735 241.266735 6: seq: 17, get_clock
Sent 87 242.250908 242.250908 6: seq: 18, get_clock
Sent 88 243.235657 243.235657 6: seq: 19, get_clock
Sent 89 244.219656 244.219656 6: seq: 1a, get_clock
Sent 90 245.203748 245.203748 6: seq: 1b, get_clock
Sent 91 246.188475 246.188475 6: seq: 1c, get_clock
Sent 92 247.172764 247.172764 6: seq: 1d, get_clock
Sent 93 248.157334 248.157334 6: seq: 1e, get_clock
Sent 94 249.141628 249.141628 6: seq: 1f, get_clock
Sent 95 250.125674 250.125674 6: seq: 10, get_clock
Sent 96 251.109750 251.109750 6: seq: 11, get_clock
Sent 97 252.094014 252.094014 6: seq: 12, get_clock
Sent 98 253.078262 253.078262 6: seq: 13, get_clock
Sent 99 253.494309 253.494309 6: seq: 14, emergency_stop
Dumping receive queue 100 messages
Receive: 0 172.356356 172.356004 11: seq: 12, clock clock=967793198
Receive: 1 173.200651 172.356004 13: seq: 12, stats count=55 sum=50782 sumsq=450316
Receive: 2 173.340560 173.340295 11: seq: 13, clock clock=1017003736
Receive: 3 174.324574 174.324343 11: seq: 14, clock clock=1066204413
Receive: 4 175.308864 175.308504 11: seq: 15, clock clock=1115412766
Receive: 5 176.293185 176.292834 11: seq: 16, clock clock=1164635185
Receive: 6 177.277524 177.277216 11: seq: 17, clock clock=1213851424
Receive: 7 178.261477 178.261162 11: seq: 18, clock clock=1263046674
Receive: 8 178.261495 178.261162 13: seq: 18, stats count=56 sum=58322 sumsq=618440
Receive: 9 179.245505 179.245298 11: seq: 19, clock clock=1312254151
Receive: 10 180.229712 180.229572 11: seq: 1a, clock clock=1361464274
Receive: 11 181.214004 181.213869 11: seq: 1b, clock clock=1410678000
Receive: 12 182.198283 182.198169 11: seq: 1c, clock clock=1459893824
Receive: 13 183.182700 183.182456 11: seq: 1d, clock clock=1509111315
Receive: 14 183.300635 183.182456 13: seq: 1d, stats count=56 sum=34758 sumsq=279240
Receive: 15 184.166748 184.166507 11: seq: 1e, clock clock=1558313990
Receive: 16 185.151418 185.151188 11: seq: 1f, clock clock=1607548000
Receive: 17 186.136426 186.136157 11: seq: 10, clock clock=1656796250
Receive: 18 187.120754 187.120249 11: seq: 11, clock clock=1706012878
Receive: 19 188.104909 188.104590 11: seq: 12, clock clock=1755222251
Receive: 20 188.300696 188.104590 13: seq: 12, stats count=55 sum=54905 sumsq=442655
Receive: 21 189.089394 189.089173 11: seq: 13, clock clock=1804447532
Receive: 22 190.074032 190.073807 11: seq: 14, clock clock=1853679424
Receive: 23 191.057687 191.057427 11: seq: 15, clock clock=1902861823
Receive: 24 192.042166 192.041789 11: seq: 16, clock clock=1952085815
Receive: 25 193.028005 193.027676 11: seq: 17, clock clock=2001374024
Receive: 26 193.400616 193.027676 13: seq: 17, stats count=56 sum=57423 sumsq=449635
Receive: 27 194.011980 194.011687 11: seq: 18, clock clock=2050573311
Receive: 28 194.996238 194.996093 11: seq: 19, clock clock=2099790988
Receive: 29 195.980534 195.980045 11: seq: 1a, clock clock=2149004376
Receive: 30 196.964236 196.964030 11: seq: 1b, clock clock=2198191276
Receive: 31 197.948813 197.948684 11: seq: 1c, clock clock=2247420961
Receive: 32 198.500484 197.948684 13: seq: 1c, stats count=56 sum=37710 sumsq=284553
Receive: 33 198.933178 198.933038 11: seq: 1d, clock clock=2296639103
Receive: 34 199.918672 199.918410 11: seq: 1e, clock clock=2345910324
Receive: 35 200.903521 200.903289 11: seq: 1f, clock clock=2395153580
Receive: 36 201.887692 201.887185 11: seq: 10, clock clock=2444359449
Receive: 37 202.871720 202.871167 11: seq: 11, clock clock=2493559495
Receive: 38 203.500639 202.871167 13: seq: 11, stats count=55 sum=44256 sumsq=281972
Receive: 39 203.857091 203.856752 11: seq: 12, clock clock=2542830281
Receive: 40 204.842102 204.841790 11: seq: 13, clock clock=2592079940
Receive: 41 205.827091 205.826589 11: seq: 14, clock clock=2641326635
Receive: 42 206.812403 206.811747 11: seq: 15, clock clock=2690587541
Receive: 43 207.796465 207.795882 11: seq: 16, clock clock=2739786049
Receive: 44 208.600636 207.795882 14: seq: 16, stats count=56 sum=79278 sumsq=1974648
Receive: 45 208.780211 208.779938 11: seq: 17, clock clock=2788988161
Receive: 46 209.764856 209.764402 11: seq: 18, clock clock=2838213246
Receive: 47 210.748804 210.748586 11: seq: 19, clock clock=2887419381
Receive: 48 211.733286 211.732938 11: seq: 1a, clock clock=2936637059
Receive: 49 212.717121 212.717018 11: seq: 1b, clock clock=2985838120
Receive: 50 213.700436 212.717018 13: seq: 1b, stats count=56 sum=59901 sumsq=879841
Receive: 51 213.701375 213.701243 11: seq: 1c, clock clock=3035049778
Receive: 52 214.686066 214.685877 11: seq: 1d, clock clock=3084283581
Receive: 53 215.670951 215.670843 11: seq: 1e, clock clock=3133529534
Receive: 54 216.655602 216.655497 11: seq: 1f, clock clock=3182761948
Receive: 55 217.641187 217.640953 11: seq: 10, clock clock=3232038424
Receive: 56 218.625125 218.624888 11: seq: 11, clock clock=3281235387
Receive: 57 218.700625 218.624888 13: seq: 11, stats count=56 sum=35247 sumsq=200615
Receive: 58 219.609581 219.609350 11: seq: 12, clock clock=3330458252
Receive: 59 220.593194 220.592901 11: seq: 13, clock clock=3379636942
Receive: 60 221.577588 221.577267 11: seq: 14, clock clock=3428854596
Receive: 61 222.561978 222.561652 11: seq: 15, clock clock=3478074483
Receive: 62 223.547086 223.546796 11: seq: 16, clock clock=3527331101
Receive: 63 223.800645 223.546796 13: seq: 16, stats count=56 sum=53330 sumsq=378024
Receive: 64 224.531613 224.531172 11: seq: 17, clock clock=3576559504
Receive: 65 225.516822 225.516535 11: seq: 18, clock clock=3625817951
Receive: 66 226.501565 226.501263 11: seq: 19, clock clock=3675054116
Receive: 67 227.486556 227.486252 11: seq: 1a, clock clock=3724304528
Receive: 68 228.470810 228.470510 11: seq: 1b, clock clock=3773517365
Receive: 69 228.900626 228.470510 13: seq: 1b, stats count=56 sum=55950 sumsq=501967
Receive: 70 229.454221 229.454102 11: seq: 1c, clock clock=3822693879
Receive: 71 230.438469 230.438362 11: seq: 1d, clock clock=3871906294
Receive: 72 231.422758 231.422654 11: seq: 1e, clock clock=3921120843
Receive: 73 232.407055 232.406918 11: seq: 1f, clock clock=3970333881
Receive: 74 233.391598 233.391449 11: seq: 10, clock clock=4019562522
Receive: 75 234.000420 233.391449 13: seq: 10, stats count=56 sum=29289 sumsq=134153
Receive: 76 234.376475 234.376227 11: seq: 11, clock clock=4068804020
Receive: 77 235.361191 235.360829 11: seq: 12, clock clock=4118039421
Receive: 78 236.345277 236.344981 11: seq: 13, clock clock=4167240925
Receive: 79 237.329401 237.329070 11: seq: 14, clock clock=4216449510
Receive: 80 238.313806 238.313290 10: seq: 15, clock clock=4265661000
Receive: 81 239.000667 238.313290 13: seq: 15, stats count=55 sum=57416 sumsq=642212
Receive: 82 239.298009 239.297560 10: seq: 16, clock clock=19906307
Receive: 83 240.282540 240.282276 10: seq: 17, clock clock=69138898
Receive: 84 241.267006 241.266735 10: seq: 18, clock clock=118362285
Receive: 85 242.251351 242.250908 10: seq: 19, clock clock=167572164
Receive: 86 243.235937 243.235657 11: seq: 1a, clock clock=216809826
Receive: 87 244.100412 243.235657 13: seq: 1a, stats count=56 sum=62343 sumsq=957151
Receive: 88 244.219754 244.219656 11: seq: 1b, clock clock=266003960
Receive: 89 245.203898 245.203748 11: seq: 1c, clock clock=315211274
Receive: 90 246.188585 246.188475 11: seq: 1d, clock clock=364445628
Receive: 91 247.172949 247.172764 11: seq: 1e, clock clock=413662929
Receive: 92 248.157467 248.157334 11: seq: 1f, clock clock=462888471
Receive: 93 249.141758 249.141628 11: seq: 10, clock clock=512104186
Receive: 94 249.141771 249.141628 13: seq: 10, stats count=56 sum=30495 sumsq=134707
Receive: 95 250.125798 250.125674 11: seq: 11, clock clock=561306199
Receive: 96 251.109897 251.109750 11: seq: 12, clock clock=610511245
Receive: 97 252.094179 252.094014 11: seq: 13, clock clock=659725351
Receive: 98 253.078494 253.078262 11: seq: 14, clock clock=708941375
Receive: 99 253.494631 253.494309 12: seq: 15, shutdown clock=729744758 static_string_id=Command request
Stats 253.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=2704 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=3.200 ready_bytes=150 upcoming_bytes=247 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=1453 bytes_read=6547 bytes_retransmit=0 bytes_invalid=0 send_seq=212 receive_seq=212 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000056 adj=49999644 toolboard_t0: mcu_awake=0.029 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=5108 bytes_read=19817 bytes_retransmit=9 bytes_invalid=0 send_seq=499 receive_seq=499 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999928 adj=63999520 toolboard_t1: mcu_awake=0.007 mcu_task_avg=0.000017 mcu_task_stddev=0.000011 bytes_write=2682 bytes_read=15959 bytes_retransmit=9 bytes_invalid=0 send_seq=301 receive_seq=301 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999919 adj=63999518 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1007 bytes_read=34296 bytes_retransmit=122 bytes_invalid=0 send_seq=161 receive_seq=161 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999646 coil_temp=29.5 refs=0 mcu_temp=30.71 supply_voltage=3.026 sysload=0.52 cputime=22.424 memavail=418836 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Dumping trapq 'toolhead' 1 moves:
move 0: pt=95.684407 mt=74.683333 sv=10.000000 a=0.000000 sp=(250.000000,250.000000,748.916667) ar=(0.000000,0.000000,-1.000000)
Requested toolhead position at shutdown time 99.419434: (250.0, 250.0, 711.56640258009)
Stats 254.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=2704 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=3.200 ready_bytes=150 upcoming_bytes=249 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=1465 bytes_read=6588 bytes_retransmit=0 bytes_invalid=0 send_seq=214 receive_seq=214 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000072 adj=49999758 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5120 bytes_read=19943 bytes_retransmit=9 bytes_invalid=0 send_seq=501 receive_seq=501 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999929 adj=63999539 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2694 bytes_read=16085 bytes_retransmit=9 bytes_invalid=0 send_seq=303 receive_seq=303 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999918 adj=63999516 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.2 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1026 bytes_read=34682 bytes_retransmit=122 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999800 adj=31999648 coil_temp=29.5 refs=0 mcu_temp=30.71 supply_voltage=3.026 sysload=0.52 cputime=22.496 memavail=418712 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 255.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3173 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=250 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=1471 bytes_read=6604 bytes_retransmit=0 bytes_invalid=0 send_seq=215 receive_seq=215 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000072 adj=50000003 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5126 bytes_read=20043 bytes_retransmit=9 bytes_invalid=0 send_seq=502 receive_seq=502 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999930 adj=63999588 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2700 bytes_read=16185 bytes_retransmit=9 bytes_invalid=0 send_seq=304 receive_seq=304 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999918 adj=63999548 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1032 bytes_read=35038 bytes_retransmit=122 bytes_invalid=0 send_seq=165 receive_seq=165 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999662 coil_temp=29.5 refs=0 mcu_temp=30.71 supply_voltage=3.026 sysload=0.48 cputime=22.555 memavail=418712 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=31.0 pwm=0.000
Stats 256.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3173 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=251 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=1477 bytes_read=6620 bytes_retransmit=0 bytes_invalid=0 send_seq=216 receive_seq=216 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000082 adj=49999979 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5132 bytes_read=20143 bytes_retransmit=9 bytes_invalid=0 send_seq=503 receive_seq=503 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999931 adj=63999626 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2706 bytes_read=16285 bytes_retransmit=9 bytes_invalid=0 send_seq=305 receive_seq=305 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999917 adj=63999568 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1038 bytes_read=35394 bytes_retransmit=122 bytes_invalid=0 send_seq=166 receive_seq=166 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999665 coil_temp=29.5 refs=0 mcu_temp=30.71 supply_voltage=3.026 sysload=0.48 cputime=22.614 memavail=418712 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 257.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3173 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=252 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=1483 bytes_read=6636 bytes_retransmit=0 bytes_invalid=0 send_seq=217 receive_seq=217 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000096 adj=50000089 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5138 bytes_read=20271 bytes_retransmit=9 bytes_invalid=0 send_seq=504 receive_seq=504 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999931 adj=63999661 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2712 bytes_read=16413 bytes_retransmit=9 bytes_invalid=0 send_seq=306 receive_seq=306 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999917 adj=63999584 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1044 bytes_read=35750 bytes_retransmit=122 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999660 coil_temp=29.5 refs=0 mcu_temp=30.71 supply_voltage=3.026 sysload=0.48 cputime=22.675 memavail=417512 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 258.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3173 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=253 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=1489 bytes_read=6652 bytes_retransmit=0 bytes_invalid=0 send_seq=218 receive_seq=218 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000094 adj=50000228 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5144 bytes_read=20371 bytes_retransmit=9 bytes_invalid=0 send_seq=505 receive_seq=505 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999934 adj=63999671 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2718 bytes_read=16513 bytes_retransmit=9 bytes_invalid=0 send_seq=307 receive_seq=307 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999921 adj=63999609 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1050 bytes_read=36106 bytes_retransmit=122 bytes_invalid=0 send_seq=168 receive_seq=168 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999655 coil_temp=29.5 refs=0 mcu_temp=30.71 supply_voltage=3.026 sysload=0.48 cputime=22.736 memavail=417512 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 259.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3173 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=254 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000033 bytes_write=1495 bytes_read=6681 bytes_retransmit=0 bytes_invalid=0 send_seq=219 receive_seq=219 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000103 adj=50000120 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5150 bytes_read=20485 bytes_retransmit=9 bytes_invalid=0 send_seq=506 receive_seq=506 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999935 adj=63999706 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2724 bytes_read=16627 bytes_retransmit=9 bytes_invalid=0 send_seq=308 receive_seq=308 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999920 adj=63999673 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.3 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1056 bytes_read=36462 bytes_retransmit=122 bytes_invalid=0 send_seq=169 receive_seq=169 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999662 coil_temp=29.5 refs=0 mcu_temp=30.72 supply_voltage=3.026 sysload=0.48 cputime=22.799 memavail=417512 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 260.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3642 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=255 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000033 bytes_write=1501 bytes_read=6697 bytes_retransmit=0 bytes_invalid=0 send_seq=220 receive_seq=220 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000107 adj=50000188 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5156 bytes_read=20613 bytes_retransmit=9 bytes_invalid=0 send_seq=507 receive_seq=507 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999940 adj=63999722 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2730 bytes_read=16755 bytes_retransmit=9 bytes_invalid=0 send_seq=309 receive_seq=309 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999920 adj=63999662 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1062 bytes_read=36818 bytes_retransmit=122 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999664 coil_temp=29.5 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.44 cputime=22.860 memavail=417512 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 261.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3642 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=256 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000033 bytes_write=1507 bytes_read=6713 bytes_retransmit=0 bytes_invalid=0 send_seq=221 receive_seq=221 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000108 adj=50000182 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5162 bytes_read=20713 bytes_retransmit=9 bytes_invalid=0 send_seq=508 receive_seq=508 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999942 adj=63999774 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2736 bytes_read=16855 bytes_retransmit=9 bytes_invalid=0 send_seq=310 receive_seq=310 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999921 adj=63999665 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1068 bytes_read=37174 bytes_retransmit=122 bytes_invalid=0 send_seq=171 receive_seq=171 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999798 adj=31999672 coil_temp=29.5 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.44 cputime=22.919 memavail=417512 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 262.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3642 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=257 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000033 bytes_write=1513 bytes_read=6729 bytes_retransmit=0 bytes_invalid=0 send_seq=222 receive_seq=222 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000103 adj=50000125 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5168 bytes_read=20813 bytes_retransmit=9 bytes_invalid=0 send_seq=509 receive_seq=509 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999942 adj=63999781 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2742 bytes_read=16955 bytes_retransmit=9 bytes_invalid=0 send_seq=311 receive_seq=311 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999947 adj=63999683 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1074 bytes_read=37530 bytes_retransmit=122 bytes_invalid=0 send_seq=172 receive_seq=172 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999800 adj=31999667 coil_temp=29.5 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.44 cputime=22.976 memavail=416528 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 263.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3642 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=258 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000033 bytes_write=1519 bytes_read=6745 bytes_retransmit=0 bytes_invalid=0 send_seq=223 receive_seq=223 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000108 adj=50000004 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5174 bytes_read=20941 bytes_retransmit=9 bytes_invalid=0 send_seq=510 receive_seq=510 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999943 adj=63999766 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2748 bytes_read=17083 bytes_retransmit=9 bytes_invalid=0 send_seq=312 receive_seq=312 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999969 adj=64000047 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1080 bytes_read=37886 bytes_retransmit=122 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=155 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999802 adj=31999688 coil_temp=29.5 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.44 cputime=23.036 memavail=416528 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=31.0 pwm=0.000
Stats 264.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=3642 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=259 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000027 bytes_write=1525 bytes_read=6774 bytes_retransmit=0 bytes_invalid=0 send_seq=224 receive_seq=224 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000103 adj=50000043 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5180 bytes_read=21055 bytes_retransmit=9 bytes_invalid=0 send_seq=511 receive_seq=511 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999943 adj=63999759 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2754 bytes_read=17197 bytes_retransmit=9 bytes_invalid=0 send_seq=313 receive_seq=313 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999964 adj=64000270 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.6 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1086 bytes_read=38242 bytes_retransmit=122 bytes_invalid=0 send_seq=174 receive_seq=174 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999800 adj=31999718 coil_temp=29.5 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.44 cputime=23.078 memavail=412756 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 265.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4111 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=260 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000027 bytes_write=1531 bytes_read=6790 bytes_retransmit=0 bytes_invalid=0 send_seq=225 receive_seq=225 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000095 adj=49999950 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5186 bytes_read=21155 bytes_retransmit=9 bytes_invalid=0 send_seq=512 receive_seq=512 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999942 adj=63999744 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2760 bytes_read=17297 bytes_retransmit=9 bytes_invalid=0 send_seq=314 receive_seq=314 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999960 adj=64000061 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1092 bytes_read=38530 bytes_retransmit=122 bytes_invalid=0 send_seq=175 receive_seq=175 retransmit_seq=155 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999680 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.41 cputime=23.102 memavail=412756 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 266.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4111 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=261 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000027 bytes_write=1537 bytes_read=6806 bytes_retransmit=0 bytes_invalid=0 send_seq=226 receive_seq=226 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000087 adj=49999824 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5192 bytes_read=21283 bytes_retransmit=9 bytes_invalid=0 send_seq=513 receive_seq=513 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999943 adj=63999717 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2766 bytes_read=17425 bytes_retransmit=9 bytes_invalid=0 send_seq=315 receive_seq=315 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999956 adj=63999910 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.3 EBB42_v1.2_T1: temp=33.3 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1098 bytes_read=38530 bytes_retransmit=143 bytes_invalid=0 send_seq=176 receive_seq=175 retransmit_seq=176 srtt=0.000 rttvar=0.000 rto=0.200 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999663 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.41 cputime=23.121 memavail=412756 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 267.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4111 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=262 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000027 bytes_write=1543 bytes_read=6822 bytes_retransmit=0 bytes_invalid=0 send_seq=227 receive_seq=227 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000080 adj=49999731 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5198 bytes_read=21383 bytes_retransmit=9 bytes_invalid=0 send_seq=514 receive_seq=514 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999949 adj=63999731 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2772 bytes_read=17525 bytes_retransmit=9 bytes_invalid=0 send_seq=316 receive_seq=316 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999953 adj=63999806 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1104 bytes_read=38530 bytes_retransmit=157 bytes_invalid=0 send_seq=177 receive_seq=175 retransmit_seq=176 srtt=0.000 rttvar=0.000 rto=0.800 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999666 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.41 cputime=23.138 memavail=413016 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.4 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 268.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4111 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=263 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000027 bytes_write=1549 bytes_read=6838 bytes_retransmit=0 bytes_invalid=0 send_seq=228 receive_seq=228 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000076 adj=49999676 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5204 bytes_read=21483 bytes_retransmit=9 bytes_invalid=0 send_seq=515 receive_seq=515 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999952 adj=63999812 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2778 bytes_read=17625 bytes_retransmit=9 bytes_invalid=0 send_seq=317 receive_seq=317 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999949 adj=63999738 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1110 bytes_read=38530 bytes_retransmit=170 bytes_invalid=0 send_seq=178 receive_seq=175 retransmit_seq=177 srtt=0.000 rttvar=0.000 rto=1.600 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999668 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.41 cputime=23.156 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 269.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4111 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=264 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000015 bytes_write=1555 bytes_read=6867 bytes_retransmit=0 bytes_invalid=0 send_seq=229 receive_seq=229 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000071 adj=49999671 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5210 bytes_read=21625 bytes_retransmit=9 bytes_invalid=0 send_seq=516 receive_seq=516 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999954 adj=63999818 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2784 bytes_read=17767 bytes_retransmit=9 bytes_invalid=0 send_seq=318 receive_seq=318 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999947 adj=63999675 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1116 bytes_read=38530 bytes_retransmit=195 bytes_invalid=0 send_seq=179 receive_seq=175 retransmit_seq=179 srtt=0.000 rttvar=0.000 rto=3.200 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999670 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.41 cputime=23.184 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.4 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Timeout with MCU 'beacon' (eventtime=270.500122)
Stats 270.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4580 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=265 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000015 bytes_write=1561 bytes_read=6883 bytes_retransmit=0 bytes_invalid=0 send_seq=230 receive_seq=230 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000075 adj=49999649 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5216 bytes_read=21725 bytes_retransmit=9 bytes_invalid=0 send_seq=517 receive_seq=517 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999956 adj=63999823 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2790 bytes_read=17867 bytes_retransmit=9 bytes_invalid=0 send_seq=319 receive_seq=319 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999949 adj=63999662 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1122 bytes_read=38530 bytes_retransmit=195 bytes_invalid=0 send_seq=180 receive_seq=175 retransmit_seq=179 srtt=0.000 rttvar=0.000 rto=3.200 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999671 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.45 cputime=23.217 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 271.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4580 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=266 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000015 bytes_write=1567 bytes_read=6899 bytes_retransmit=0 bytes_invalid=0 send_seq=231 receive_seq=231 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000072 adj=49999766 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5222 bytes_read=21825 bytes_retransmit=9 bytes_invalid=0 send_seq=518 receive_seq=518 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999960 adj=63999813 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2796 bytes_read=17967 bytes_retransmit=9 bytes_invalid=0 send_seq=320 receive_seq=320 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999951 adj=63999689 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.6 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1128 bytes_read=38530 bytes_retransmit=195 bytes_invalid=0 send_seq=181 receive_seq=175 retransmit_seq=179 srtt=0.000 rttvar=0.000 rto=3.200 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999672 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.45 cputime=23.250 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 272.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4580 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=267 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000015 bytes_write=1573 bytes_read=6915 bytes_retransmit=0 bytes_invalid=0 send_seq=232 receive_seq=232 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000069 adj=49999743 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5228 bytes_read=21953 bytes_retransmit=9 bytes_invalid=0 send_seq=519 receive_seq=519 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999961 adj=63999848 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2802 bytes_read=18095 bytes_retransmit=9 bytes_invalid=0 send_seq=321 receive_seq=321 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999954 adj=63999723 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1134 bytes_read=38530 bytes_retransmit=195 bytes_invalid=0 send_seq=182 receive_seq=175 retransmit_seq=179 srtt=0.000 rttvar=0.000 rto=3.200 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999673 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.45 cputime=23.284 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 273.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4580 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=268 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000015 bytes_write=1579 bytes_read=6931 bytes_retransmit=0 bytes_invalid=0 send_seq=233 receive_seq=233 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000067 adj=49999739 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5234 bytes_read=22053 bytes_retransmit=9 bytes_invalid=0 send_seq=520 receive_seq=520 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999969 adj=63999829 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2808 bytes_read=18195 bytes_retransmit=9 bytes_invalid=0 send_seq=322 receive_seq=322 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999959 adj=63999763 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1140 bytes_read=38530 bytes_retransmit=238 bytes_invalid=0 send_seq=183 receive_seq=175 retransmit_seq=182 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999674 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.45 cputime=23.316 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 274.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=4580 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=269 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000030 bytes_write=1585 bytes_read=6960 bytes_retransmit=0 bytes_invalid=0 send_seq=234 receive_seq=234 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000066 adj=49999746 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5240 bytes_read=22167 bytes_retransmit=9 bytes_invalid=0 send_seq=521 receive_seq=521 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999975 adj=63999921 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2814 bytes_read=18309 bytes_retransmit=9 bytes_invalid=0 send_seq=323 receive_seq=323 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999975 adj=63999817 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1146 bytes_read=38530 bytes_retransmit=238 bytes_invalid=0 send_seq=184 receive_seq=175 retransmit_seq=182 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999674 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.45 cputime=23.350 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 275.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5049 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=270 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000030 bytes_write=1591 bytes_read=6976 bytes_retransmit=0 bytes_invalid=0 send_seq=235 receive_seq=235 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000066 adj=49999761 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5246 bytes_read=22295 bytes_retransmit=9 bytes_invalid=0 send_seq=522 receive_seq=522 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999976 adj=63999955 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2820 bytes_read=18437 bytes_retransmit=9 bytes_invalid=0 send_seq=324 receive_seq=324 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999980 adj=64000026 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1152 bytes_read=38530 bytes_retransmit=238 bytes_invalid=0 send_seq=185 receive_seq=175 retransmit_seq=182 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.50 cputime=23.384 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 276.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5049 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=271 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000030 bytes_write=1597 bytes_read=6992 bytes_retransmit=0 bytes_invalid=0 send_seq=236 receive_seq=236 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000064 adj=49999782 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5252 bytes_read=22395 bytes_retransmit=9 bytes_invalid=0 send_seq=523 receive_seq=523 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999987 adj=63999921 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2826 bytes_read=18537 bytes_retransmit=9 bytes_invalid=0 send_seq=325 receive_seq=325 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999981 adj=64000029 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1158 bytes_read=38530 bytes_retransmit=238 bytes_invalid=0 send_seq=186 receive_seq=175 retransmit_seq=182 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.50 cputime=23.418 memavail=413024 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 277.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5049 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=272 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000030 bytes_write=1603 bytes_read=7008 bytes_retransmit=0 bytes_invalid=0 send_seq=237 receive_seq=237 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000063 adj=49999786 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5258 bytes_read=22495 bytes_retransmit=9 bytes_invalid=0 send_seq=524 receive_seq=524 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999988 adj=64000024 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2832 bytes_read=18637 bytes_retransmit=9 bytes_invalid=0 send_seq=326 receive_seq=326 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999981 adj=63999967 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=238 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=182 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=0 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.50 cputime=23.451 memavail=413224 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.0 pwm=0.000 extruder1: target=0 temp=30.6 pwm=0.000
Stats 278.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5049 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=273 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000021 mcu_task_stddev=0.000030 bytes_write=1609 bytes_read=7024 bytes_retransmit=0 bytes_invalid=0 send_seq=238 receive_seq=238 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000062 adj=49999782 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5264 bytes_read=22623 bytes_retransmit=9 bytes_invalid=0 send_seq=525 receive_seq=525 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999987 adj=63999975 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2838 bytes_read=18765 bytes_retransmit=9 bytes_invalid=0 send_seq=327 receive_seq=327 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999980 adj=63999914 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=311 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=1 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.50 cputime=23.485 memavail=413292 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 279.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5049 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=274 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000024 bytes_write=1615 bytes_read=7053 bytes_retransmit=0 bytes_invalid=0 send_seq=239 receive_seq=239 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000062 adj=49999797 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5270 bytes_read=22737 bytes_retransmit=9 bytes_invalid=0 send_seq=526 receive_seq=526 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999986 adj=63999900 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2844 bytes_read=18879 bytes_retransmit=9 bytes_invalid=0 send_seq=328 receive_seq=328 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999975 adj=63999851 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=311 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=2 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.50 cputime=23.518 memavail=413312 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 280.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5518 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=275 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000024 bytes_write=1621 bytes_read=7069 bytes_retransmit=0 bytes_invalid=0 send_seq=240 receive_seq=240 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000063 adj=49999818 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5276 bytes_read=22837 bytes_retransmit=9 bytes_invalid=0 send_seq=527 receive_seq=527 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999984 adj=63999840 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2850 bytes_read=18979 bytes_retransmit=9 bytes_invalid=0 send_seq=329 receive_seq=329 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999970 adj=63999747 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.6 EBB42_v1.2_T1: temp=33.7 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=311 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=3 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.54 cputime=23.553 memavail=413312 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 281.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5518 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=276 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000024 bytes_write=1627 bytes_read=7085 bytes_retransmit=0 bytes_invalid=0 send_seq=241 receive_seq=241 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000063 adj=49999844 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5282 bytes_read=22965 bytes_retransmit=9 bytes_invalid=0 send_seq=528 receive_seq=528 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999982 adj=63999793 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2856 bytes_read=19107 bytes_retransmit=9 bytes_invalid=0 send_seq=330 receive_seq=330 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999976 adj=63999667 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=311 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=4 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.54 cputime=23.582 memavail=410288 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 282.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5518 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=277 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000024 bytes_write=1633 bytes_read=7101 bytes_retransmit=0 bytes_invalid=0 send_seq=242 receive_seq=242 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000059 adj=49999850 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5288 bytes_read=23065 bytes_retransmit=9 bytes_invalid=0 send_seq=529 receive_seq=529 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999984 adj=63999748 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2862 bytes_read=19207 bytes_retransmit=9 bytes_invalid=0 send_seq=331 receive_seq=331 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999970 adj=63999767 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=311 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=5 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.54 cputime=23.603 memavail=417636 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 283.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5518 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=278 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000024 bytes_write=1639 bytes_read=7117 bytes_retransmit=0 bytes_invalid=0 send_seq=243 receive_seq=243 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000053 adj=49999786 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5294 bytes_read=23165 bytes_retransmit=9 bytes_invalid=0 send_seq=530 receive_seq=530 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999993 adj=63999778 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2868 bytes_read=19307 bytes_retransmit=9 bytes_invalid=0 send_seq=332 receive_seq=332 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999969 adj=63999669 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=384 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=6 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.54 cputime=23.621 memavail=417636 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 284.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5518 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=279 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000018 mcu_task_stddev=0.000024 bytes_write=1645 bytes_read=7133 bytes_retransmit=0 bytes_invalid=0 send_seq=244 receive_seq=244 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000052 adj=49999718 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5300 bytes_read=23307 bytes_retransmit=9 bytes_invalid=0 send_seq=531 receive_seq=531 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999996 adj=63999888 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2874 bytes_read=19449 bytes_retransmit=9 bytes_invalid=0 send_seq=333 receive_seq=333 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999963 adj=63999676 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=384 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=7 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.54 cputime=23.642 memavail=417636 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 285.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5987 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=280 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000017 mcu_task_stddev=0.000028 bytes_write=1651 bytes_read=7162 bytes_retransmit=0 bytes_invalid=0 send_seq=245 receive_seq=245 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000049 adj=49999752 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5306 bytes_read=23407 bytes_retransmit=9 bytes_invalid=0 send_seq=532 receive_seq=532 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999992 adj=63999904 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2880 bytes_read=19549 bytes_retransmit=9 bytes_invalid=0 send_seq=334 receive_seq=334 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999962 adj=63999599 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=384 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=8 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.58 cputime=23.661 memavail=415876 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 286.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5987 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=281 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000017 mcu_task_stddev=0.000028 bytes_write=1657 bytes_read=7178 bytes_retransmit=0 bytes_invalid=0 send_seq=246 receive_seq=246 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000045 adj=49999730 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5312 bytes_read=23501 bytes_retransmit=9 bytes_invalid=0 send_seq=533 receive_seq=533 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999995 adj=63999812 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2886 bytes_read=19643 bytes_retransmit=9 bytes_invalid=0 send_seq=335 receive_seq=335 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999957 adj=63999613 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=384 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=9 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.58 cputime=23.684 memavail=415876 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 287.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5987 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=282 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000017 mcu_task_stddev=0.000028 bytes_write=1663 bytes_read=7194 bytes_retransmit=0 bytes_invalid=0 send_seq=247 receive_seq=247 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000046 adj=49999705 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5318 bytes_read=23620 bytes_retransmit=9 bytes_invalid=0 send_seq=534 receive_seq=534 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000002 adj=63999831 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2892 bytes_read=19762 bytes_retransmit=9 bytes_invalid=0 send_seq=336 receive_seq=336 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999958 adj=63999566 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.4 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=384 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=10 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.58 cputime=23.719 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 288.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5987 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=283 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000017 mcu_task_stddev=0.000028 bytes_write=1669 bytes_read=7210 bytes_retransmit=0 bytes_invalid=0 send_seq=248 receive_seq=248 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000045 adj=49999744 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5324 bytes_read=23713 bytes_retransmit=9 bytes_invalid=0 send_seq=535 receive_seq=535 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000001 adj=63999920 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2898 bytes_read=19855 bytes_retransmit=9 bytes_invalid=0 send_seq=337 receive_seq=337 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999958 adj=63999607 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=457 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=11 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.58 cputime=23.752 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.6 pwm=0.000
Stats 289.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=5987 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=285 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000017 mcu_task_stddev=0.000028 bytes_write=1681 bytes_read=7242 bytes_retransmit=0 bytes_invalid=0 send_seq=250 receive_seq=250 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000046 adj=49999760 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5330 bytes_read=23820 bytes_retransmit=9 bytes_invalid=0 send_seq=536 receive_seq=536 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999997 adj=63999854 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=2910 bytes_read=19977 bytes_retransmit=9 bytes_invalid=0 send_seq=339 receive_seq=339 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999956 adj=63999634 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=44.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=457 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=12 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.58 cputime=23.786 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 290.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6456 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=286 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000034 bytes_write=1687 bytes_read=7271 bytes_retransmit=0 bytes_invalid=0 send_seq=251 receive_seq=251 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000045 adj=49999809 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5336 bytes_read=23945 bytes_retransmit=9 bytes_invalid=0 send_seq=537 receive_seq=537 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999998 adj=63999782 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=2916 bytes_read=20103 bytes_retransmit=9 bytes_invalid=0 send_seq=340 receive_seq=340 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999952 adj=63999623 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.5 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=457 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=13 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.61 cputime=23.822 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.5 pwm=0.000
Stats 291.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6456 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=287 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000034 bytes_write=1693 bytes_read=7287 bytes_retransmit=0 bytes_invalid=0 send_seq=252 receive_seq=252 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000047 adj=49999797 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5342 bytes_read=24045 bytes_retransmit=9 bytes_invalid=0 send_seq=538 receive_seq=538 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999995 adj=63999775 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=2922 bytes_read=20203 bytes_retransmit=9 bytes_invalid=0 send_seq=341 receive_seq=341 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999958 adj=63999590 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.9 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=457 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=14 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.61 cputime=23.854 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 292.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6456 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=288 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000034 bytes_write=1699 bytes_read=7303 bytes_retransmit=0 bytes_invalid=0 send_seq=253 receive_seq=253 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000047 adj=49999836 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5348 bytes_read=24145 bytes_retransmit=9 bytes_invalid=0 send_seq=539 receive_seq=539 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999996 adj=63999737 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=2928 bytes_read=20303 bytes_retransmit=9 bytes_invalid=0 send_seq=342 receive_seq=342 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999955 adj=63999701 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.6 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=457 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=15 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.61 cputime=23.888 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 293.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6456 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=289 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000034 bytes_write=1705 bytes_read=7319 bytes_retransmit=0 bytes_invalid=0 send_seq=254 receive_seq=254 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000045 adj=49999841 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=5354 bytes_read=24273 bytes_retransmit=9 bytes_invalid=0 send_seq=540 receive_seq=540 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000000 adj=63999755 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=2934 bytes_read=20431 bytes_retransmit=9 bytes_invalid=0 send_seq=343 receive_seq=343 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999951 adj=63999661 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=530 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=16 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.61 cputime=23.922 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.4 pwm=0.000 extruder1: target=0 temp=30.6 pwm=0.000
Stats 294.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6456 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=290 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000034 bytes_write=1711 bytes_read=7335 bytes_retransmit=0 bytes_invalid=0 send_seq=255 receive_seq=255 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000046 adj=49999823 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5366 bytes_read=24403 bytes_retransmit=9 bytes_invalid=0 send_seq=542 receive_seq=542 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000009 adj=63999804 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000009 bytes_write=2940 bytes_read=20531 bytes_retransmit=9 bytes_invalid=0 send_seq=344 receive_seq=344 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999952 adj=63999617 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.9 EBB42_v1.2_T1: temp=33.8 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=530 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=17 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.61 cputime=23.957 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 295.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6925 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=291 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000031 bytes_write=1717 bytes_read=7364 bytes_retransmit=0 bytes_invalid=0 send_seq=256 receive_seq=256 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000048 adj=49999838 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5372 bytes_read=24503 bytes_retransmit=9 bytes_invalid=0 send_seq=543 receive_seq=543 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000007 adj=63999925 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2946 bytes_read=20645 bytes_retransmit=9 bytes_invalid=0 send_seq=345 receive_seq=345 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999954 adj=63999655 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=44.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=530 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=18 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.64 cputime=23.991 memavail=415644 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 296.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6925 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=292 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000031 bytes_write=1723 bytes_read=7380 bytes_retransmit=0 bytes_invalid=0 send_seq=257 receive_seq=257 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000046 adj=49999871 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5378 bytes_read=24631 bytes_retransmit=9 bytes_invalid=0 send_seq=544 receive_seq=544 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000021 adj=63999859 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2952 bytes_read=20773 bytes_retransmit=9 bytes_invalid=0 send_seq=346 receive_seq=346 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999958 adj=63999687 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=530 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=19 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.64 cputime=24.026 memavail=415660 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 297.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6925 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=293 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000031 bytes_write=1729 bytes_read=7396 bytes_retransmit=0 bytes_invalid=0 send_seq=258 receive_seq=258 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000047 adj=49999835 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5384 bytes_read=24731 bytes_retransmit=9 bytes_invalid=0 send_seq=545 receive_seq=545 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000019 adj=64000041 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2958 bytes_read=20873 bytes_retransmit=9 bytes_invalid=0 send_seq=347 receive_seq=347 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999954 adj=63999765 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.4 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=530 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=20 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.64 cputime=24.059 memavail=415436 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 298.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6925 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=294 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000031 bytes_write=1735 bytes_read=7412 bytes_retransmit=0 bytes_invalid=0 send_seq=259 receive_seq=259 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000048 adj=49999855 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5390 bytes_read=24831 bytes_retransmit=9 bytes_invalid=0 send_seq=546 receive_seq=546 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000018 adj=63999941 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2964 bytes_read=20973 bytes_retransmit=9 bytes_invalid=0 send_seq=348 receive_seq=348 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999950 adj=63999687 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=603 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=21 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.64 cputime=24.091 memavail=410424 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 299.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=6925 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=295 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000023 mcu_task_stddev=0.000031 bytes_write=1741 bytes_read=7428 bytes_retransmit=0 bytes_invalid=0 send_seq=260 receive_seq=260 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000042 adj=49999872 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5396 bytes_read=24959 bytes_retransmit=9 bytes_invalid=0 send_seq=547 receive_seq=547 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000013 adj=63999896 toolboard_t1: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2970 bytes_read=21101 bytes_retransmit=9 bytes_invalid=0 send_seq=349 receive_seq=349 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999951 adj=63999627 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.2 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=603 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=22 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.64 cputime=24.110 memavail=413696 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.4 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 300.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7394 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=296 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1747 bytes_read=7457 bytes_retransmit=0 bytes_invalid=0 send_seq=261 receive_seq=261 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000038 adj=49999783 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5402 bytes_read=25073 bytes_retransmit=9 bytes_invalid=0 send_seq=548 receive_seq=548 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000010 adj=63999779 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2976 bytes_read=21215 bytes_retransmit=9 bytes_invalid=0 send_seq=350 receive_seq=350 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999952 adj=63999659 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=603 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=23 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.75 cputime=24.129 memavail=413696 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 301.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7394 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=297 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1753 bytes_read=7473 bytes_retransmit=0 bytes_invalid=0 send_seq=262 receive_seq=262 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000033 adj=49999737 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5408 bytes_read=25173 bytes_retransmit=9 bytes_invalid=0 send_seq=549 receive_seq=549 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000006 adj=63999738 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2982 bytes_read=21315 bytes_retransmit=9 bytes_invalid=0 send_seq=351 receive_seq=351 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999951 adj=63999687 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=603 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=24 freq=31999799 adj=31999675 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.75 cputime=24.146 memavail=413700 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 302.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7394 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=298 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1759 bytes_read=7489 bytes_retransmit=0 bytes_invalid=0 send_seq=263 receive_seq=263 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000029 adj=49999693 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5414 bytes_read=25301 bytes_retransmit=9 bytes_invalid=0 send_seq=550 receive_seq=550 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=64000003 adj=63999686 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2988 bytes_read=21443 bytes_retransmit=9 bytes_invalid=0 send_seq=352 receive_seq=352 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999952 adj=63999688 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=47.2 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=603 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=25 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.75 cputime=24.165 memavail=413700 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 303.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7394 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=299 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1765 bytes_read=7505 bytes_retransmit=0 bytes_invalid=0 send_seq=264 receive_seq=264 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000025 adj=49999671 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5420 bytes_read=25401 bytes_retransmit=9 bytes_invalid=0 send_seq=551 receive_seq=551 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999997 adj=63999652 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=2994 bytes_read=21543 bytes_retransmit=9 bytes_invalid=0 send_seq=353 receive_seq=353 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999946 adj=63999701 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=676 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=26 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.75 cputime=24.186 memavail=413704 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.9 pwm=0.000
Stats 304.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7394 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=300 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=1771 bytes_read=7521 bytes_retransmit=0 bytes_invalid=0 send_seq=265 receive_seq=265 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000026 adj=49999655 toolboard_t0: mcu_awake=0.003 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5426 bytes_read=25501 bytes_retransmit=9 bytes_invalid=0 send_seq=552 receive_seq=552 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999994 adj=63999595 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=3000 bytes_read=21643 bytes_retransmit=9 bytes_invalid=0 send_seq=354 receive_seq=354 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999943 adj=63999616 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=676 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=27 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.75 cputime=24.220 memavail=413704 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.6 pwm=0.000
Stats 305.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7863 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=301 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=1777 bytes_read=7550 bytes_retransmit=0 bytes_invalid=0 send_seq=266 receive_seq=266 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000025 adj=49999709 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5432 bytes_read=25643 bytes_retransmit=9 bytes_invalid=0 send_seq=553 receive_seq=553 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999996 adj=63999584 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=3006 bytes_read=21785 bytes_retransmit=9 bytes_invalid=0 send_seq=355 receive_seq=355 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999939 adj=63999588 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.5 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=676 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=28 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.77 cputime=24.254 memavail=413704 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 306.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7863 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=302 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=1783 bytes_read=7566 bytes_retransmit=0 bytes_invalid=0 send_seq=267 receive_seq=267 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000028 adj=49999727 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5438 bytes_read=25743 bytes_retransmit=9 bytes_invalid=0 send_seq=554 receive_seq=554 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999991 adj=63999654 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=3012 bytes_read=21885 bytes_retransmit=9 bytes_invalid=0 send_seq=356 receive_seq=356 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999936 adj=63999553 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.7 raspberry_pi: temp=46.7 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=676 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=29 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.77 cputime=24.287 memavail=413704 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.1 pwm=0.000 extruder1: target=0 temp=30.8 pwm=0.000
Stats 307.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7863 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=303 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=1789 bytes_read=7582 bytes_retransmit=0 bytes_invalid=0 send_seq=268 receive_seq=268 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000028 adj=49999802 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5444 bytes_read=25843 bytes_retransmit=9 bytes_invalid=0 send_seq=555 receive_seq=555 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999990 adj=63999603 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=3018 bytes_read=21985 bytes_retransmit=9 bytes_invalid=0 send_seq=357 receive_seq=357 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999932 adj=63999535 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.7 raspberry_pi: temp=45.8 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=676 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=30 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.77 cputime=24.321 memavail=413716 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.3 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 308.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7863 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=304 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=1795 bytes_read=7598 bytes_retransmit=0 bytes_invalid=0 send_seq=269 receive_seq=269 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000028 adj=49999804 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5450 bytes_read=25971 bytes_retransmit=9 bytes_invalid=0 send_seq=556 receive_seq=556 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999990 adj=63999630 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=3024 bytes_read=22113 bytes_retransmit=9 bytes_invalid=0 send_seq=358 receive_seq=358 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999935 adj=63999525 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.8 EBB42_v1.2_T1: temp=33.6 raspberry_pi: temp=46.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=749 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=31 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.77 cputime=24.356 memavail=413716 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.5 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
Stats 309.5: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=22346 bytes_read=30207 bytes_retransmit=7863 bytes_invalid=0 send_seq=1238 receive_seq=1226 retransmit_seq=1238 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=150 upcoming_bytes=305 freq=180000696 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=1801 bytes_read=7614 bytes_retransmit=0 bytes_invalid=0 send_seq=270 receive_seq=270 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=50000029 adj=49999813 toolboard_t0: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=5456 bytes_read=26071 bytes_retransmit=9 bytes_invalid=0 send_seq=557 receive_seq=557 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999992 adj=63999657 toolboard_t1: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000010 bytes_write=3030 bytes_read=22213 bytes_retransmit=9 bytes_invalid=0 send_seq=359 receive_seq=359 retransmit_seq=2 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=63999933 adj=63999600 Octopus_V1.1_F446: temp=34.6 EBB42_v1.2_T0: temp=32.7 EBB42_v1.2_T1: temp=33.7 raspberry_pi: temp=45.3 heater_bed: target=0 temp=29.2 pwm=0.000 beacon: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=1164 bytes_read=38530 bytes_retransmit=749 bytes_invalid=0 send_seq=187 receive_seq=175 retransmit_seq=187 srtt=0.000 rttvar=0.000 rto=5.000 ready_bytes=0 upcoming_bytes=33 freq=31999799 adj=31999676 coil_temp=29.6 refs=0 mcu_temp=30.73 supply_voltage=3.026 sysload=0.77 cputime=24.390 memavail=413716 print_time=96.379 buffer_time=0.000 print_stall=0 extruder: target=0 temp=30.2 pwm=0.000 extruder1: target=0 temp=30.7 pwm=0.000
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'
b'Got error -1 in write: (11)Resource temporarily unavailable'