diff --git a/site/docs/configuration/_media/0degree.png b/site/docs/configuration/_media/0degree.png new file mode 100644 index 000000000..45a8e94a0 Binary files /dev/null and b/site/docs/configuration/_media/0degree.png differ diff --git a/site/docs/configuration/_media/90degree.png b/site/docs/configuration/_media/90degree.png new file mode 100644 index 000000000..9e5c2e3ef Binary files /dev/null and b/site/docs/configuration/_media/90degree.png differ diff --git a/site/docs/configuration/adaptive-meshing.md b/site/docs/configuration/adaptive-meshing.md index 02f8d4124..3086a309c 100644 --- a/site/docs/configuration/adaptive-meshing.md +++ b/site/docs/configuration/adaptive-meshing.md @@ -2,116 +2,63 @@ sidebar_position: 2 --- -# Adaptive Meshing (BETA) +# Bed Meshing -RatOS comes with it's own adaptive meshing (functionality was previously handled by PAM by Helge Keck), similar to KAMP. When enabled and configured in your slicer, RatOS will only probe the print area and your configured probe location, potentially saving a lot of time on smaller prints on bigger printers. RatOS will keep the resolution of your mesh (probes per mm), so that you always get consistent mesh performance. Contrary to KAMP and PAM, RatOS doesn't move your prime location, instead it probes the prime location (constrained by min/max bed_mesh settings) a single time and uses the difference between the probe result and your z_offset to dynamically apply a gcode offset only for the prime macro. This ensures no collision with prime blob and the toolhead on small meshes. +- [Bed Mesh Calibration](#bed-mesh-calibration) +- [Adaptive Meshing](#adaptive-meshing) +- [Adaptive Meshing configuration](#adaptive-meshing-configuration) +- [Adaptive Prime Blob configuration](#adaptive-prime-blob-configuration) +- [Prime Blob x-margin ](#prime-blob-x-margin) +- [Slicer configuration](#slicer-configuration) +- [Zero reference osition](#zero-reference-position) -:::warning -Adaptive priming is currently **NOT** supported for Beacon. It is expected to be supported in the near future, once beacon probe results can be read from macros. RatOS will automatically skip priming if Beacon is detected. -::: +## Bed Mesh Calibration -## Macro configuration +By default RatOS calibrates the bed mesh before each print, if you prefer calibrating your bed mesh manually, you can disable it. Disabling `variable_calibrate_bed_mesh` will stop RatOS from loading a bed mesh entirely. If you want it to load a mesh, you can set `variable_bed_mesh_profile` to the name of the profile you want it to load. -To enable adaptive priming set `variable_adaptive_mesh` to `True` in your RatOS macro configuration section (if it isn't already there, add it): +| Name | Possible Values | Default | Description | +| :-------------------------- | :----------------- | :-------- | :-------------------------------------------------------- | +| variable_calibrate_bed_mesh | True / False | True | Whether or not to calibrate a bed mesh before each print. | +| variable_bed_mesh_profile | undefined / string | undefined | The name of the profile you want to load. | -| Name | Possible Values | Default | Description | -| ---------------------- | --------------- | ------- | ---------------------------------- | -| variable_adaptive_mesh | True / False | False | Whether to enable adaptive meshing | +If `variable_calibrate_bed_mesh` is `False` you must set `variable_bed_mesh_profile` variable to the profile name you wish to load, or no bed mesh will be loaded. If `variable_calibrate_bed_mesh` is `True` and this variable isn't set, RatOS will use `ratos` as the profile name. -:::info -If you are currently using PAM, you should delete the PAM includes from printer.cfg before proceeding. Afterwards you can delete the PAM directory and remove the PAM moonraker.conf entry. -::: +## Adaptive Meshing -## Slicer configuration +RatOS comes with it's own, deeply integrated and IDEX aware, adaptive meshing implementation. Do not try to set up the klipper variant of it, which works only in combination with the exclude_objects feature. RatOS will only probe the print area and your configured probe location, potentially saving a lot of time on smaller prints on bigger printers. RatOS will keep the resolution of your mesh (probes per mm), so that you always get consistent mesh performance. Contrary to other implementations, RatOS doesn't move your prime location, instead it probes the prime location (constrained by min/max bed_mesh settings) a single time and uses the difference between the probe result and your z_offset to dynamically apply a gcode offset only for the prime macro. This ensures no collision with the prime blob and the toolhead on small meshes. -Adaptive meshing requires that you provide print area coordinates to the START_PRINT macro, you can copy and paste the START_PRINT macro for your slicer below. +### Adaptive Meshing configuration -### PrusaSlicer / SuperSlicer +Adaptive bed meshing is enabled by default. To disable it set `variable_adaptive_mesh` to `False` in your printer.cfg file. -```properties -START_PRINT EXTRUDER_TEMP=[first_layer_temperature] BED_TEMP=[first_layer_bed_temperature] X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]} -``` +| Name | Possible Values | Default | Description | +| :--------------------- | :-------------- | :------ | :--------------------------------- | +| variable_adaptive_mesh | True / False | True | Whether to enable adaptive meshing | -### OrcaSlicer / SoftFever +### Adaptive Prime Blob configuration -```properties -START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]} -``` +For single toolhead printer you can control the location and direction of the prime blob, IDEX printers do use a fully automated and intelligent prime control depending on the situation and print mode. -### Ideamaker +| Name | Possible Values | Default | Description | +| :------------------------------- | :------------------------------ | :---------- | :------------------------------- | +| variable_nozzle_priming | "primeblob", False | "primeblob" | Whether to enable the prime blob | +| variable_nozzle_prime_start_x | "min", "max", Number | "max" | non IDEX priming x-location | +| variable_nozzle_prime_start_y | "min", "max", Number | "min" | non IDEX priming y-location | +| variable_nozzle_prime_direction | "auto", "forwards", "backwards" | "auto" | non IDEX priming y-direction | +| variable_nozzle_prime_bridge_fan | Number | 102 | priming bridging fan speed 0-255 | -```properties -START_PRINT EXTRUDER_TEMP={temperature_extruder1} BED_TEMP={temperature_heatbed} X0={print_pos_min_x} Y0={print_pos_min_y} X1={print_pos_max_x} Y1={print_pos_max_y} -``` +### Prime Blob x-margin -### Simplify 3D V5 - -```properties -START_PRINT EXTRUDER_TEMP=[extruder0_temperature] BED_TEMP=[bed0_temperature] X0=[build_min_x] Y0=[build_min_y] X1=[build_max_x] Y1=[build_max_y] +By default the primeblob has a x-margin of 5 mm from the edge. This value can be changed by overriding it in the printer.cfg. ``` - -### Cura - -To make adaptive meshing work with Cura you need to install a post processing plugin - -1. in cura open menu `Help -> Show configuration folder` -2. Copy the following and save it as `MeshPrintSize.py` in the `scripts` folder - -```python -# -------------------------------------------------------------------------------- -# Original Version from https://gist.github.com/frankbags -# https://gist.github.com/frankbags/c85d37d9faff7bce67b6d18ec4e716ff -# -# Modified version from https://github.com/kmarty -# https://github.com/kmarty/klipper_config_km_addons/blob/master/bed_mesh_calibrate/MeshPrintSize.py -# -# thank you frankbags and kmarty! -# -------------------------------------------------------------------------------- - -import re #To perform the search and replace. - -from ..Script import Script - -class MeshPrintSize(Script): - - def getSettingDataString(self): - return """{ - "name": "Mesh Print Size", - "key": "MeshPrintSize", - "metadata": {}, - "version": 2, - "settings":{} - }""" - - def execute(self, data): - minMaxXY = {'MINX':0,'MINY':0,'MAXX':0,'MAXY':0} - re_pattern = re.compile(r'%(' + r'|'.join(minMaxXY.keys()) + r')%') - minmax_counter = len(minMaxXY) - - for i in range(len(data)): - # in Cura "layer' != "line" :-( - for k,v in minMaxXY.items(): - if minmax_counter: - result = re.search(r';' + k + r':\s*(\d*\.\d+|\d+)', data[i]) - if result: - minMaxXY[k] = result.group(1) - minmax_counter -= 1 - else: - if re_pattern.search(data[i]): - data[i] = re.sub(r'%' + k + r'%', v, data[i]) - - return data +[gcode_macro PRIME_BLOB] +variable_x_offset: 5 # the prime blob x-margin ``` -3. restart cura -4. in cura open menu `Extensions -> Post processing -> Modify G-Code` and select `Mesh Print Size` +### Slicer configuration -Modify start gcode to: - -```properties -START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} X0=%MINX% Y0=%MINY% X1=%MAXX% Y1=%MAXY% -``` +Make sure to setup your slicer according to the [official RatOS slicer configuration](../slicers.md). -## Relative reference index +### Zero reference position -RatOS Adaptive Meshing currently doesn't modify the relative reference index, it's generally not advised to use relative reference index with adaptive meshing. +RatOS Adaptive Meshing currently doesn't modify the zero reference position, it's generally not advised to set the zero reference position with adaptive meshing. diff --git a/site/docs/configuration/beacon_contact.md b/site/docs/configuration/beacon_contact.md new file mode 100644 index 000000000..658ccf746 --- /dev/null +++ b/site/docs/configuration/beacon_contact.md @@ -0,0 +1,239 @@ +# RatOS 2.1 with Beacon Contact + +- [Prerequisites](#prerequisites) +- [Fully automated RatOS Beacon calibration](#fully-automated-ratos-beacon-calibration) +- [Initial calibration](#1-initial-calibration) +- [Beacon latency check](#2-beacon-latency-check) +- [Temperature expansion calibration](#3-temperature-expansion-calibration) +- [Final calibration](#4-final-calibration) +- [Beacon Scan Compensation](#5-beta-automated-beacon-scan-compensation) +- [First print and fine tuning](#6-first-print-and-fine-tuning) +- [RatOS configuration](#7-ratos-configuration) +- [Beacon Tools](#8-tools) +- [FAQ](#9-faq) + +## Prerequisites +- update RatOS 2.1 via mainsail +- read the official [beacon contact documentation](https://docs.beacon3d.com/contact/), but do not follow any installation instructions from there. + +## NEW! Bed and hotend heat soaking time +It is recommended to use the new RatOS heat soaking variables. The beacon calibration and the Start print macro are using these values. + +``` +[gcode_macro RatOS] +variable_bed_heat_soak_time: 1200 +variable_hotend_heat_soak_time: 300 +variable_start_print_park_in: 'primeblob' +``` + +## Fully automated RatOS Beacon calibration +Ratos comes with a fully automated beacon model and temperature offset calibration. + +By default the beacon contact feature is enabled. If you want to disable it, set `variable_beacon_contact_start_print_true_zero` to False. + +- Run `BEACON_RATOS_CALIBRATE BED_TEMP=85 CHAMBER_TEMP=45`. Use your target temperature for the `BED_TEMP` and `CHAMBER_TEMP` parameter. `CHAMBER_TEMP` is optional, and can be omitted. + + The automated beacon calibration will run the following calibrations and tests, which can also be used individually. Please make sure to read every section before starting the calibration. + - [Initial calibration](#1-initial-calibration) + - [Beacon latency check](#2-beacon-latency-check) + - [Temperature expansion calibration](#3-temperature-expansion-calibration) (for non IDEX printer) + - [Final calibration](#4-final-calibration) + - [Beacon scan compensation](#5-beta-automated-beacon-scan-compensation) *if [beacon_scan_compensation_enable: True](#7-ratos-configuration) a reference mesh will be created if needed* + + All calibration results will be saved automatically, there is no user action required. Klipper will restart by its own after the calibration is done. + +## 1. Initial calibration +We need to create a intial beacon model to be able to home the printer. +- Run `BEACON_INITIAL_CALIBRATION` + + It will home your printer and run the calibration fully automated. This command can throw a tolerance error, in this case just repeat it until the command gets successfully completed. + + For safety and peace of mind, the LED will turn on as soon as the contact system determines it has a strong enough signal for detection. It should normally turn on up to 10mm in advance of the metal target, allowing enough time to manually estop the machine if necessary. + +- Run `SAVE_CONFIG` to save the model to your printer.cfg file. + +## 2. Beacon latency check +This test will show you the quality of your beacon probing. +- Run `BEACON_POKE_TEST` + + It will home your printer and poke the bed multiple times. After it check the console output, it should look like this: +``` +Overshoot: 35.625 um +Triggered at: z=0.07369 with latency=2 +Armed at: z=4.76021 +Poke test from 5.000 to -0.300, at 3.000 mm/s +``` + +Compare your latency values with the following list. + +| Score | Notes | +| :------------ |:--------------- | +| 0-1 | Extremely low noise, rarely achieved +| 2-4 | Excellent performance for a typical printer +| 5-8 | Acceptable performance, machine may have considerable cyclic axis noise +| 9-11 | Not ideal, may want to verify proper mounting or use thinner stackups +| 12-14 | Reason for concern, present setup may be risky to continue with + +## 3. Temperature expansion calibration +RatOS comes with a built in temperature expansion calibration and compensation. + +**Preparation** +- Unload filament from the nozzle +- Make sure the nozzle is clean and that no filament is leaking out of it. Make a manual cold pull or use the RatOS `COLD_PULL` macro. +- Let the machine cool down to ambient temperature +- Do **NOT** make this calibration on a smooth PEI sheet, in this case turn the sheet arround and make the calibration on the bare metall of it. + +**Cold Pull Macro** + +The cold pull macro lets you perform a automated cold pull and cleans your nozzle. Before the cold pull 30mm of filament will be extruded with the `EXTRUSION_TEMP`. + +The default values are good for PLA cold pulls, for PETG and ABS you should use something like `EXTRUSION_TEMP=250 COLD_PULL_TEMP=95`. If you hear skipping during the cold pull, raise the `COLD_PULL_TEMP` a bit. +``` +COLD_PULL EXTRUSION_TEMP=220 COLD_PULL_TEMP=80 TOOLHEAD=0 +``` + +**Single toolhead printer** +- Run `BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET` + + It homes your printer and runs the calibration fully automated. This will take some time. + +**IDEX printer** +- Start VAOC +- Center both nozzles over the camera +- Click the `Calibrate Thermal Expansion` button in VAOC + + It calibrates both nozzles fully automated. This will take some time. + +It is recommended to repeat that process always when you change a nozzle and before loading any new filament into it. + +After the test is finished check the console output, it should look like this typical result: +``` +RatOS | Beacon: T0 expansion coefficient: 0.075000 +``` +This value is in mm and represents the thermal expansion for a temperature difference of 100°C. RatOS uses this value to calculate the needed offset and applies it automatically. + +The result will be saved automatically to the configuration file, there is no user action required. + +## 4. Final calibration +For the scan method z-homing we should create a beacon model under real conditions. This is optional but recommended. +- Run `BEACON_FINAL_CALIBRATION BED_TEMP=85 CHAMBER_TEMP=45` + + Use your target temperature for the `BED_TEMP` and `CHAMBER_TEMP` parameter. It will home your printer and run the calibration fully automated. + +- Run `SAVE_CONFIG` to save the model to your printer.cfg file. + +## 5. BETA! Automated Beacon Scan Compensation +With RatOS you can automatically compensate for gantry twist over the complete build plate and inaccuracies in the build sheets material thickness which causes a ripple effect on scanned bed meshes. + +### How do i know if i need this? + +Measuring gantry twist + +- `BEACON_MEASURE_GANTRY_TWIST` automatically measures the gantry twist on multiple locations on the bed. It will home your printer and level the bed if needed. The result will be displayed after the test has finished. The command can throw a tolerance error, in this case just repeat it until the command gets + +The result will look like this. + +``` +Gantry twist relative to the center + +Low gantry twist: 50.324232μm. +You may experience first layer inconsistensies, consider beacon scan compensation. + +Front left: 2.362576μm +Front center: 16.475233μm +Front right: -47.959155μm +Left center: 24.925954μm +Right center: -22.468182μm +Back left: 50.324232μm +Back center: 37.143389μm +Back right: -4.167238μm +``` + +Check your build plate + +- Make a scan bed mesh and save it as `Scan1` +- Rotate the build plate by 90° *only the sheet and not the bed* +- Make a second scan bed mesh and save it as `Scan2` +- if you see that the pattern follows the build plate you need this compensation + +Scan 1 + + + +Scan 2 with the build plate rotated by 90° + + + +Since this is still in beta you need to activate the feature manually. Copy this to your printer.cfg file. +``` +[gcode_macro RatOS] +variable_beacon_scan_compensation_enable: True # Enables the beacon scan compensation +``` + +- Run `BEACON_CREATE_SCAN_COMPENSATION_MESH BED_TEMP=85 CHAMBER_TEMP=45 PROFILE=Contact` to create a contact reference bed mesh. + + Use your target temperature for the `BED_TEMP` and `CHAMBER_TEMP` parameter. It will home your printer, heat it to target temp, waits for heat soaking and run the calibration fully automated. + +- You'll need a reference contact mesh for each build plate and each time your target bed temperature changes more than 10 or 20 degrees (TBD). For example, if i primarily print ABS at 110 and PETG 80 both on the same powder coated sheet, i would need two contact meshes, one for 80 and one for 110. If i print at 90 and 110, i might be able to get away with a single contact mesh at 100c. You can create separate compensation meshes by running `BEACON_CREATE_SCAN_COMPENSATION_MESH` command with the `PROFILE` parameter. For example `BEACON_CREATE_SCAN_COMPENSATION_MESH PROFILE="PEI_PC_90"` + +- Set the profile name for the wanted reference mesh profile in the gcode variable `beacon_scan_compensation_profile`. The default profile name is `Contact` + +- If `BEACON_CREATE_SCAN_COMPENSATION_MESH` throws an error while meshing, you can jsut run `BED_MESH_CALIBRATE PROBE_METHOD=contact USE_CONTACT_AREA=1 SAMPLES=2 SAMPLES_DROP=1 SAMPLES_TOLERANCE_RETRIES=10 PROFILE=Contact`. This will skip the heat soaking part which isnt needed anymore in this case. + +- If the feature is enabled it will automatically compensate while printing, there is no other user action requried. If you want to see the compensation for a manually created mesh, just open the mesh in mainsail and run `BEACON_APPLY_SCAN_COMPENSATION PROFILE=Contact` in the console, this will update the mesh in mainsail. + + +Click the image to to open the video and see the result in action + +[](https://youtu.be/qjRhAHsX0Hc) + +## 6. First print and fine tuning +- Print a 150x30mm one layer thick rectangle in the middle of the buildplate. +- While printing finetune with babystepping. +- Run `SAVE_Z_OFFSET` to save the changes. Dont click the button, type `SAVE_Z_OFFSET` into the console. + +## 7. RatOS configuration +The beacon contact feature is activated by default, you dont need to do anything. But you can override the settings to enable more beacon contact features if wanted. Just copy and paste this complete block to your printer.cfg file and make the changes there. +``` +##### +# Beacon probe configuration +##### +[gcode_macro RatOS] +variable_beacon_bed_mesh_scv: 25 # square corner velocity for bed meshing with proximity method +variable_beacon_contact_z_homing: False # Make all G28 calls use contact instead of proximity scan +variable_beacon_contact_start_print_true_zero: True # Use contact to determine true Z=0 for the last homing move during START_PRINT +variable_beacon_contact_wipe_before_true_zero: True # enables a nozzle wipe at Y10 before true zeroing +variable_beacon_contact_true_zero_temp: 150 # nozzle temperature for true zeroing + # WARNING: if you're using a smooth PEI sheet, be careful with the temperature + +variable_beacon_contact_prime_probing: True # probe for priming with contact method +variable_beacon_contact_expansion_compensation: True # enables the nozzle thermal expansion compensation + +variable_beacon_contact_bed_mesh: False # bed mesh with contact method +variable_beacon_contact_bed_mesh_samples: 2 # probe samples for contact bed mesh + +variable_beacon_contact_z_tilt_adjust: False # z-tilt adjust with contact method +variable_beacon_contact_z_tilt_adjust_samples: 2 # probe samples for contact z-tilt adjust + +variable_beacon_scan_compensation_enable: False # Enables the beacon scan compensation +variable_beacon_scan_compensation_profile: "Contact" # The contact profile name for the scan compensation +variable_beacon_scan_compensation_probe_count: 15,15 # The contact probe count for the scan compensation + +variable_beacon_contact_poke_bottom_limit: -1 # The bottom limit for the contact poke test +``` + +## 8. Tools + +### Measuring z-axis backlash +With the beacon macro `BEACON_ESTIMATE_BACKLASH` you can measure the backlash of your setup. You need to home your printer and level your bed before using it. + +``` +Median distance moving up 1.99990, down 2.00286, delta 0.00296 over 20 samples +``` + +The delta value represents your backlash in mm. + +## 9. FAQ + +### Q: What if i want to have different z offsets for different filaments? +A: if you want to have a different z_offset for different filament profiles, you can use `SET_GCODE_OFFSET Z_ADJUST=+0.01` or for negative z offset `SET_GCODE_OFFSET Z_ADJUST=-0.01` in your filament profiles custom gcode section. If you use Z instead of Z_ADJUST klipper will replace all previously set Z offset adjustments, including hotend expansion compensation with your provided value (which you obviously don't want). diff --git a/site/docs/configuration/calibration.md b/site/docs/configuration/calibration.md new file mode 100644 index 000000000..1709b20a4 --- /dev/null +++ b/site/docs/configuration/calibration.md @@ -0,0 +1,85 @@ +# RatOS 2.1 Calibration Macros + +- [PID_CALIBRATE_HOTEND](#pid_calibrate_hotend) +- [PID_CALIBRATE_BED](#pid_calibrate_bed) +- [INITIALIZE_PA_TUNING](#initialize_pa_tuning) +- [MEASURE_COREXY_BELT_TENSION](#measure_corexy_belt_tension) +- [GENERATE_SHAPER_GRAPHS](#generate_shaper_graphs) + + +## PID calibration macros + +PID (Proportional-Integral-Derivative) calibration for 3D printer hotends and beds is a crucial process that ensures stable and accurate temperature control. PID tuning minimizes temperature fluctuations in the hot end and the bed heater of your 3D printer. Unlike the less precise Bang-Bang method, PID calibration maintains a constant temperature, resulting in better print quality. + +Remember to run PID tuning when you get a new printer, change the hot end, or make modifications. It ensures consistent and reliable printing! + +At the completion of the PID calibration run `SAVE_CONFIG` to update the printer.cfg file with the new PID settings. + +### PID_CALIBRATE_HOTEND +- **Parameters** `[TEMP|TOOLHEAD]` + + `TEMP` = The target calibration temperature for the hotend. Default value is 220°C. + + `TOOLHEAD` = Only needed for IDEX printer. 0 = Left toolhead, 1 = right Toolhead. Default value is -1. + +### PID_CALIBRATE_BED +- **Parameters** `[TEMP]` + + `TEMP` = The target calibration temperature for the bed heater. Default value is 80°C. + + +## Pressure advance tuning macro + +Pressure advance tuning (also known as PA or Linear Advance) is a critical process for achieving better print quality in 3D printing. During accelerations and decelerations, the extruder experiences lag, causing over-extrusion at the start of a line and under-extrusion at the end. Pressure advance adjusts the extruder speed to maintain consistent pressure in the nozzle, resulting in more accurate extrusion. + +Remember, pressure advance helps maintain consistent extrusion, especially during rapid movements! + +RatOS comes with a simple way to get high precise 3 digits PA values for your filament profiles. + +### INITIALIZE_PA_TUNING +- **Parameters** `[START|FACTOR]` + + `START` = The PA start value for this calibration. Default is 0.0. + + `FACTOR` = The PA value change per millimeter. Default is 0.001. + + **How to use it.** + - Place a 50x50mm cube on your buildplate and make it 100mm height. + - Use 2 or 3 perimeters and little infill. + - Print with your target printing profile, do not change anything. + - When the first layer starts run the `INITIALIZE_PA_TUNING` macro with its default values. + - Measure with a caliper form the bottom of the print to the best corner quality of the print. + - if the value is 45.5mm then yor new PA value is 0.0455. + + +## Vibration analysis macros + +Vibration analysis in the context of 3D printers involves studying the vibrations generated during printing. It helps to understand the state of the 3D printer during printing. Vibration monitoring enhances 3D printing quality and helps maintain reliable operation! + +At the completion of the vibration analysis you'll find the graphs in the input_shaper folder in the machine tab in the frontend. + +### MEASURE_COREXY_BELT_TENSION +- **Parameters** `[TOOLHEAD|FREQUENCY_START|FREQUENCY_END|HZ_PER_SEC]` + + `TOOLHEAD` = Only needed for IDEX printer. 0 = Left toolhead, 1 = right Toolhead. By default it uses both toolheads. + + `FREQUENCY_START` = The start frequency for the test. Default value is 10HZ. + + `FREQUENCY_END` = The end frequency for the test. Default value is 133HZ. + + `HZ_PER_SEC` = HZ per second to test. A value between 0.1HZ and 2.0HZ per second is allowed. Default is 1.0HZ. + +### GENERATE_SHAPER_GRAPHS +- **Parameters** `[TOOLHEAD|AXIS|FREQUENCY_START|FREQUENCY_END|HZ_PER_SEC]` + + `TOOLHEAD` = Only needed for IDEX printer. 0 = Left toolhead, 1 = right Toolhead. By default it uses both toolheads. + + `AXIS` = The printer axis for the test. X or Y. By default both axis will be used. + + `FREQUENCY_START` = The start frequency for the test. Default value is 10HZ. + + `FREQUENCY_END` = The end frequency for the test. Default value is 133HZ. + + `HZ_PER_SEC` = HZ per second to test. A value between 0.1HZ and 2.0HZ per second is allowed. Default is 1.0HZ. + + On a IDEX printer you can run this test in COPY and MIRROR mode as well. diff --git a/site/docs/configuration/chamber_filter.md b/site/docs/configuration/chamber_filter.md new file mode 100644 index 000000000..60e3f7737 --- /dev/null +++ b/site/docs/configuration/chamber_filter.md @@ -0,0 +1,43 @@ +# RatOS 2.1 Chamber filter control + +RatOS comes with a built in chamber filter control. + +## Prerequisites + +To be able to use the chamber control feature you just need to configure a generic fan with the name `filter`. +``` +[fan_generic filter] +``` + +## Configuration + +The feature is activated by default, you dont need to do anything. But you can override the settings in your printer.cfg if wanted. +``` +[gcode_macro RatOS] +variable_chamber_filter_enable: True # True|False = enable chamber filter control +variable_chamber_filter_speed: 1.0 # float = chamber filter fan speed. +variable_chamber_filter_enable_at: "after_print_start" # before_print_start|after_print_start|print_end = when to enable the filter +variable_chamber_filter_disable_period: 300 # int = disable fan after X seconds after the print ends +variable_chamber_filter_disable_bed_temp: 0 # int = wait for X°C bed temp after the print ends before disabling the filter +``` + +## Macro hooks + +To support more usecases the chamber fitler controls comes with two macro hooks that can be overwritten. + +``` +[gcode_macro _CHAMBER_FILTER_TURN_ON] +gcode: + # config + {% set chamber_filter_speed = printer["gcode_macro RatOS"].chamber_filter_speed|default(0)|float %} + + # turn filter fan on + SET_FAN_SPEED FAN=filter SPEED={chamber_filter_speed} +``` + +``` +[gcode_macro _CHAMBER_FILTER_TURN_OFF] +gcode: + # turn filter fan off + SET_FAN_SPEED FAN=filter SPEED=0 +``` diff --git a/site/docs/configuration/chamber_heater.md b/site/docs/configuration/chamber_heater.md new file mode 100644 index 000000000..796ced2c3 --- /dev/null +++ b/site/docs/configuration/chamber_heater.md @@ -0,0 +1,136 @@ +# RatOS 2.1 Chamber heater control + +RatOS comes with a built in chamber heater control that supports 3 differenct scenarios. + +- [1. Bed heater](#1-bed-heater) +- [2. Internal heater](#2-internal-heater) +- [3. External heater](#3-external-heater) + + +## Prerequisites +- Make sure to configure your slicer according to the [official RatOS slicer configuration](../slicers.md) + +## 1. Bed heater +RatOS uses by default the bed heater to heat the chamber, the hotend thermistor or a chamber thermistor will be used to wait for the initial chamber temperature. + +- if no `temperature_sensor chamber` is defined, the hotend thermistor will be used to wait for the initial chamber temperature. + +### Configuration + +*Make sure to name your devices after this example configuration.* +``` +[temperature_sensor chamber] +sensor_type: ATC Semitec 104GT-2 +sensor_pin: PF4 +``` + +## 2. Internal (klipper/RatOS controlled) heater +A pwm controlled chamber heater, a heater fan and a chamber thermistor to control the chamber temperature. + +- if no `temperature_sensor chamber` is defined, the hotend thermistor will be used to wait for the initial chamber temperature. +- if `temperature_sensor chamber` is defined it will be used for the automatic chamber temperature control. + +### Configuration + +*Make sure to name your devices after this example configuration.* +``` +[temperature_sensor chamber] +sensor_type: ATC Semitec 104GT-2 +sensor_pin: PF4 + +[heater_generic chamber_heater] +gcode_id: chamber_heater +heater_pin: PA2 +smooth_time: 10 +sensor_type: PT1000 +sensor_pin: PF5 +control: pid +pid_kp: 24.750 +pid_ki: 2.578 +pid_kd: 59.400 +pwm_cycle_time: 0.25 +min_temp: 0 +max_temp: 200 +max_power: 1.0 + +[heater_fan chamber_heater_fan] +pin: PE14 +heater: chamber_heater +heater_temp: 40 +``` + +## 3. External (stand-alone controller) heater +A dedicated heater device with or without its own temperature control that can be switched on/off by a relais/output_pin and a chamber thermistor to control the initial chamber temperature. + +- if no `temperature_sensor chamber` is defined, the hotend thermistor will be used to wait for the initial chamber temperature. +- a `temperature_sensor chamber` can be used for the automatic chamber temperature control. In this case set `chamber_heater_control_external_heater` to `True`. This will turn the heater on/off when needed. + +### Configuration + +*Make sure to name your devices after this example configuration.* +``` +[temperature_sensor chamber] +sensor_type: ATC Semitec 104GT-2 +sensor_pin: PF4 + +[output_pin chamber_heater_pin] +pin: PE14 +``` + +## Extra Chamber Heater Fan +A extra fan can be configured to support the chamber heating process, control its speed with the `chamber_heater_extra_fan_speed` variable. +``` +[fan_generic chamber_heater_extra_fan] +``` + +To support more usecases the chamber heater extra fan control comes with two macro hooks that can be overwritten. + +``` +[gcode_macro _CHAMBER_HEATER_EXTRA_FAN_ON] +gcode: + # config + {% set chamber_heater_extra_fan_speed = printer["gcode_macro RatOS"].chamber_heater_extra_fan_speed|default(0.0)|float %} + + # turn chamber heater extra fan on + {% 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: + # turn chamber heater extra fan off + {% if printer["fan_generic chamber_heater_extra_fan"] is defined %} + SET_FAN_SPEED FAN=chamber_heater_extra_fan SPEED=0 + {% endif %} +``` + +## User Macro Hooks +``` +[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: +``` + +### RatOS Configuration + +``` +[gcode_macro RatOS] +variable_chamber_heater_enable: True # True|False = enable chamber heater control +variable_chamber_heater_bed_temp: 115 # int = bed temperature during chamber preheating +variable_chamber_heater_preheating_temp: 150 # int = the temp the generic_heater is set to when preheating the chamber +variable_chamber_heater_heating_temp_offset: 25 # int = the temp offset for the generic_heater, in addition to the target chamber_temp, while printing +variable_chamber_heater_control_external_heater: False # True|False = automatic heater control for external heater devices +variable_chamber_heater_air_circulation_enable: True # True|False = uses the part cooling to blow air from the top of the chamber to the bottom when preheating the chamber +variable_chamber_heater_air_circulation_fan_speed: 0.35 # float = the part cooling fan speed that is used to circulate the air when preheating the chamber +variable_chamber_heater_air_circulation_y_pos: 0 # float = toolhead y-pos when circulating the air +variable_chamber_heater_air_circulation_z_pos: 100 # float = toolhead z-pos when circulating the air +variable_chamber_heater_extra_fan_speed: 1.0 # float = the extra chamber heater fan that is used to circulate the air when preheating the chamber +variable_chamber_heater_filter_fan_speed: 1.0 # float = the filter fan speed that is used to circulate the air when preheating the chamber +``` diff --git a/site/docs/configuration/filament_sensors.md b/site/docs/configuration/filament_sensors.md new file mode 100644 index 000000000..8651911a2 --- /dev/null +++ b/site/docs/configuration/filament_sensors.md @@ -0,0 +1,209 @@ +# RatOS 2.1 Filament Sensors + +RatOS supports multiple sensor types that are toolhead aware. These sensors can be combined to work together. Configure them as described, there are no other changes needed. + +When combining toolhead and bowden sensors then each sensor has only one function. The Toolhead sensor reacts to the insert detection and the bowden sensor is responsible for the runout detection. This has the benefit that one doesnt need to open a heated chamber and remove the bowden tube to remove the old filament, it will be ejected and can be easily removed at the end of the bowden tube. + +:::info +Sensors can be temporarily deactivated by disabling them in the mainsail user interface. +::: + +:::info +If a sensor shows detected if no filament is loaded and empty if a filament is loaded, inverse the `switch_pin` by adding or removing a `!` in front of the pin name. The sensor state will be displayed in the mainsail user interface. +::: + +### Supported Sensors + +- [Toolhead Filament Sensor](#toolhead-filament-sensor) +- [Bowden Filament Sensor](#bowden-filament-sensor) +- [Motion Filament Sensor](#motion-filament-sensor) +- [Action Button](#action-button) + +### RatOS configuration + +- [Sensor features](#sensor-features) +- [Filament grabbing](#filament-grabbing) +- [Purging](#purging) +- [Feedrates](#feedrates) +- [Retraction](#retraction) +- [Advanced](#advanced) + +# Toolhead Filament Sensor + +Toolhead filament sensors are attached directly onto the toolhead. + +### Features + +- runout detection +- insert detection +- auto load filament on insert +- auto unload filament after runout +- auto resume print after insert +- spool join for IDEX printer +- filament grabbing on insert +- check for filament presence/runuout before starting a print +- frontend toolhead color used as status display + +### Configuration +``` +[filament_switch_sensor toolhead_filament_sensor_t0] +pause_on_runout: False +event_delay: 0.1 +switch_pin: ^!toolboard_t0:PB3 +runout_gcode: + _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT TOOLHEAD=0 +insert_gcode: + _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT TOOLHEAD=0 +``` + +# Bowden Filament Sensor + +Bowden filament sensors are attached somewhere at the bowden tube. + +### Features + +- runout detection +- insert detection (no automatic action available, macro can be overridden) +- auto unload filament after runout +- spool join for IDEX printer +- check for filament presence/runuout before starting a print +- frontend toolhead color used as status display + +### Configuration +``` +[filament_switch_sensor bowden_filament_sensor_t0] +pause_on_runout: False +event_delay: 0.1 +switch_pin: ^!PC15 +runout_gcode: + _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT TOOLHEAD=0 +insert_gcode: + _ON_BOWDEN_FILAMENT_SENSOR_INSERT TOOLHEAD=0 +``` + +# Motion Filament Sensor + +Motion sensors can be used for clog detection. + +### Features + +- optional runout detection +- optional insert detection (no automatic action available, macro can be overridden) +- clog detection +- auto unload filament after runout +- spool join for IDEX printer + +### Configuration +``` +[filament_motion_sensor bowden_filament_clog_t0] +switch_pin: ^PG15 +detection_length: 8 +extruder: extruder # extruder for T0, extruder1 for T1 +pause_on_runout: False +event_delay: 3.0 +pause_delay: 0.5 +runout_gcode: + _ON_BOWDEN_FILAMENT_SENSOR_CLOG TOOLHEAD=0 +insert_gcode: +``` + +# Action Button + +Some filament sensors, like the orbiter filament sensor, do come with a action button. + +### Features + +- filament unload + +### Configuration +``` +[gcode_button toolhead_filament_sensor_button_t0] +pin: ^!toolboard_t0:PB4 +release_gcode: + _ON_FILAMENT_SENSOR_BUTTON_PRESSED TOOLHEAD=0 +press_gcode: +``` + +# Orbiter Smart Filament Sensor example configuration + +The new Orbiter Smart Filament Sensor with filament tangle detection. + +``` +[filament_switch_sensor toolhead_filament_sensor_t0] +pause_on_runout: False +event_delay: 0.1 +switch_pin: ^PA13 +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: ^PA14 +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: +``` + +# RatOS Configuration + +### Sensor features +``` +[gcode_macro T0] +variable_enable_insert_detection: True # enables the insert detection +variable_enable_runout_detection: True # enables the runout detection +variable_enable_clog_detection: True # enables the clog detection +variable_unload_after_runout: True # unload filament after runout has been detected +variable_resume_after_insert: True # resumes the print after inserting new filament +``` + +### Filament grabbing +When inserting a filament into the toolhead filament sensor, the extruder gears will grab the filament, even if the hotend is still cold. +``` +[gcode_macro T0] +variable_filament_grabbing_speed: 1 # filament grabbing speed in mm/s +variable_filament_grabbing_length: 5 # filament grabbing length in mm +``` + +### Purging +``` +[gcode_macro T0] +variable_purge_after_load: 30 # purge x mm after the filament has been loaded to the nozzle tip +variable_purge_before_unload: 0 # purge x mm before the filament unloads +``` + +### Feedrates +``` +[gcode_macro T0] +variable_filament_load_speed: 10 # filament nozzle loading speed +variable_extruder_load_speed: 60 # extruder/cooling zone loading speed +``` + +### Retraction +``` +[gcode_macro PAUSE] +variable_retract: 1.5 # retract on pause print +variable_extrude: 1.5 # extrude before resume print +``` + +### Parking Position +``` +[gcode_macro RatOS] +variable_runout_park_in: "front" # back|front|center = gantry parking position if a runout or clog has been detected +variable_runout_park_x: 50 # float = if configured the x position of the toolhead. if not configured it will park in the middle +``` + +### Advanced +``` +[gcode_macro T0] +variable_cooling_position_to_nozzle_distance: 40 # distance between the cooling position and the nozzle +variable_tooolhead_sensor_to_extruder_gear_distance: 15 # distance between the filament sensor trigger point + # and where the filament hits the extruder gears +variable_extruder_gear_to_cooling_position_distance: 30 # distance between the extruder gears and the center of the heatsink cooling tube +variable_filament_loading_nozzle_offset: -10 # offset tuning value. positive or negative number. + # different nozzles can lead to too much or not enough extrusion while loading the filament +``` diff --git a/site/docs/configuration/filaments.md b/site/docs/configuration/filaments.md new file mode 100644 index 000000000..fc8b2a241 --- /dev/null +++ b/site/docs/configuration/filaments.md @@ -0,0 +1,24 @@ +# RatOS 2.1 Filament Macros + +- [LOAD_FILAMENT](#load_filament) +- [UNLOAD_FILAMENT](#unload_filament) +- [M600](#m600) + +## LOAD_FILAMENT +- **Parameters** `[TOOLHEAD|TEMP]` + + `TOOLHEAD` = Only needed for IDEX printer. 0 = Left toolhead, 1 = right Toolhead. Default value is -1. + + `TEMP` = The hotend temperature for the loading process. Default value is 220°C. + +## UNLOAD_FILAMENT +- **Parameters** `[TOOLHEAD|TEMP]` + + `TOOLHEAD` = Only needed for IDEX printer. 0 = Left toolhead, 1 = right Toolhead. Default value is -1. + + `TEMP` = The hotend temperature for the unloading process. Default value is 220°C. + +## M600 +- **Parameters** + + Pauses the print and unloads the filament from the hotend. This macro can be used for manual filament swaps. \ No newline at end of file diff --git a/site/docs/configuration/idex.md b/site/docs/configuration/idex.md new file mode 100644 index 000000000..6de47cb4e --- /dev/null +++ b/site/docs/configuration/idex.md @@ -0,0 +1,63 @@ +# RatOS 2.1 IDEX Macros + +- [IDEX_SINGLE]() +- [IDEX_COPY]() +- [IDEX_MIRROR]() +- [IDEX_PARK]() +- [JOIN_SPOOLS]() +- [REMAP_TOOLHEADS]() + + +## IDEX printing modes + +Independent Dual Extrusion (IDEX) 3D printers offer versatile printing modes that enhance productivity and flexibility. + +### IDEX_SINGLE + +- Single toolhead mode for single, multicolor and multimaterial prints. + + This is the default printing mode. + +### IDEX_COPY + +- Prints two identical models simultaneously. + + Run this macro before starting a print to enable the COPY mode. After the print ends the printer returns to single toolhead mode. + +### IDEX_MIRROR + +- Mirrors your model and prints both the original and its mirror image in one go. + + Run this macro before starting a print to enable the MIRROR mode. After the print ends the printer returns to single toolhead mode. + +### IDEX_PARK + +- Moves the current active toolhead to its parking position. + + Only available in single toolhead mode and if printer is not printing. + +## IDEX extras + +RatOS comes with a built in join spool and toolhead remapping feature. + +### JOIN_SPOOLS +- **Parameters** `[SPOOLS]` + + The spool join feature can switch to another filament spool once a runout has been detected. This works only if you have a RatOS runout sensor configured according to the [official RatOS filament sensor documentation](filament_sensors.md). + + `SPOOLS` = Eg. `0,1` or `1,0`, both settings do the same actually. If one of the spools runs out it switches fully automated to the other and resumes the print. + + To deactivate the feature click the `JOIN_SPOOLS` macro button without any parameter. + + +### REMAP_TOOLHEADS +- **Parameters** `[TOOLHEADS]` + + The toolhead remapping feature lets you swap the toolhead assignemnt. + + `TOOLHEADS` = Eg. `0,1` or `1,0`, both settings do the same actually. Swaps the slicer toolhead assignment. + + - Reprint a already sliced multicolor file with swapped toolheads + - Reprint a already sliced single toolhead print with the other toolhead + + To deactivate the feature click the `REMAP_TOOLHEADS` macro button without any parameter. diff --git a/site/docs/configuration/led.md b/site/docs/configuration/led.md new file mode 100644 index 000000000..78576a245 --- /dev/null +++ b/site/docs/configuration/led.md @@ -0,0 +1,70 @@ +# RatOS 2.1 LED control + +RatOS comes with a built in LED status control for toolhead LED's. It also lets the user add custom LEDs that can be automatically controlled by RatOS. + +## Example toolhead LED configuration for single toolhead printer + +Make sure to name your LED `nozzle_led_t0`. + +``` +[neopixel nozzle_led_t0] +pin: toolboard_t0:PD3 +chain_count: 3 +color_order: GRB +initial_RED: 1.0 +initial_GREEN: 1.0 +initial_BLUE: 1.0 +``` + +## Example toolhead LED configuration for IDEX printer + +Make sure to name your LED `nozzle_led_t0` and `nozzle_led_t1`. + +``` +[neopixel nozzle_led_t0] +pin: toolboard_t0:PD3 +chain_count: 3 +color_order: GRB +initial_RED: 1.0 +initial_GREEN: 1.0 +initial_BLUE: 1.0 + +[neopixel nozzle_led_t1] +pin: toolboard_t1:PD3 +chain_count: 3 +color_order: GRB +initial_RED: 1.0 +initial_GREEN: 1.0 +initial_BLUE: 1.0 +``` + +## Adding a custom user LED to the RatOS LED control + +Configure a LED according to the klipper documentation and then override this macro in your printer.cfg file. + +``` +[gcode_macro _USER_LED_SET] +gcode: + # parameter + {% 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 %} + + # replace MY_LED_NAME with the name you choosed for the custom LED + SET_LED LED="MY_LED_NAME" RED={r} GREEN={g} BLUE={b} SYNC=0 +``` + +## Changing status colors + +Status colors are stored as RGB values in these RatOS variables. Override them in your printer.cfg file to change them. + +``` +[gcode_macro RatOS] +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 +``` diff --git a/site/docs/configuration/macros.md b/site/docs/configuration/macros.md index e774b4543..811630272 100644 --- a/site/docs/configuration/macros.md +++ b/site/docs/configuration/macros.md @@ -6,9 +6,26 @@ sidebar_position: 1 RatOS comes with a bunch of flexible predefined macro's that can be customized via variables and macro hooks. +- [Variables](#variables) +- [Printing](#printing) +- [Speed](#speed) +- [Homing](#homing) +- [Heating](#heating) +- [Bed Mesh Calibration](#bed-mesh-calibration) +- [Nozzle Priming](#nozzle-priming) +- [Filament loading/unloading](#filament-loadingunloading) +- [Parking](#parking) +- [Toolhead configuration](#toolhead-configuration) +- [VAOC](#vaoc) +- [IDEX](#idex) +- [Beacon probe](#beacon-probe) +- [Stowable probes](#stowable-probes) +- [Skew profile](#skew-profile) +- [User macro hooks](#user-macro-hooks) + ## Variables -In your printer.cfg at the bottom of the Macro's section, you'll notice this: +In your printer.cfg at the top, you'll notice this: ```properties title="printer.cfg" ########################################## @@ -30,46 +47,52 @@ Not all of the available variables are listed in printer.cfg by default. If you Below you'll find a list of the available variables and what they do. -### Relative Extrusion - -| Name | Possible Values | Default | -| --------------------------- | --------------- | ------- | -| variable_relative_extrusion | True / False | False | - -Controls which extrusion mode START_PRINT ends in. Which value you use here depends on your slicer configuration, in other words this variable should always correspond to the extrusion mode setting in your slicer. It is recommended to configure your slicer for relative extrusion and set this variable to True. - -### Speed - -| Name | Possible Values | Default | -| --------------------------- | --------------- | ------- | -| variable_macro_travel_speed | number | 300 | -| variable_macro_z_speed | number | 10 | - -Travel speed to use for gcode moves in RatOS Macro's in mm/s. - -### Homing - -| Name | Possible Values | Default | Description | -| ---------------------- | ----------------- | --------- | ----------------------------------------------------------------------------------- | -| variable_safe_home_x | "middle" / number | "middle" | The x coordinate for where to return the toolhead to when homing Z | -| variable_safe_home_y | "middle" / number | "middle | The y coordinate for where to return the toolhead to when homing Z | -| variable_homing_z_hop | number | 15 | How much to raise the toolhead after homing Z. Probe configs may change this value. | -| variable_driver_type_x | string | "tmc2209" | The driver type used on X. Used to restore current after sensorless homing | -| variable_driver_type_y | string | "tmc2209" | The driver type used on X. Used to restore current after sensorless homing | - -### Heating +## Printing +`[gcode_macro RatOS]` + +| Name | Possible Values | Default | Description | +| --------------------------- | --------------- | ------- | ----------------------------------------------------------------------------------- | +| variable_relative_extrusion | True / False | False | Controls which extrusion mode START_PRINT ends in. Which value you use here depends on your slicer configuration, in other words this variable should always correspond to the extrusion mode setting in your slicer. It is recommended to configure your slicer for relative extrusion and set this variable to True. | +| variable_force_absolute_position | True / False | False | Forces absolute positioning before the print starts. | + +## Speed +`[gcode_macro RatOS]` + +| Name | Possible Values | Default | Description | +| --------------------------- | --------------- | ------- | ----------------------------------------------------------------------------------- | +| variable_macro_travel_speed | number | 300 | XY Travel speed to use for gcode moves in RatOS Macro's in mm/s. | +| variable_macro_travel_accel | number | 2000 | XY Travel acceleration to use for gcode moves in RatOS Macro's in mm/s². | +| variable_macro_z_speed | number | 15 | Z Travel speed to use for gcode moves in RatOS Macro's in mm/s. | + +## Homing +`[gcode_macro RatOS]` + +| Name | Possible Values | Default | Description | +| ----------------------------- | ------------------------- | ----------- | ----------------------------------------------------------------------------------- | +| variable_z_probe | "static" / "stowable" | "static" | z-probe type | +| variable_homing | "endstops" / "sensorless" | "endstops" | axis homing method | +| variable_safe_home_x | "middle" / number | "middle" | The x coordinate for where to return the toolhead to when homing Z | +| variable_safe_home_y | "middle" / number | "middle | The y coordinate for where to return the toolhead to when homing Z | +| variable_homing_z_hop | number | 15 | How much to raise the toolhead after homing Z. Probe configs may change this value. | +| variable_driver_type_x | string | "tmc2209" | The driver type used on X. Used to restore current after sensorless homing | +| variable_driver_type_y | string | "tmc2209" | The driver type used on X. Used to restore current after sensorless homing | +| variable_sensorless_x_current | number | 0.4 | stepper driver run current for sensorless x-homing | +| variable_sensorless_y_current | number | 0.4 | stepper driver run current for sensorless y-homing | + +## Heating +`[gcode_macro RatOS]` | Name | Possible Values | Default | Description | | ------------------------------------------ | --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | variable_preheat_extruder | True / False | True | Enables or disables preheating of the nozzle to 150 degrees during the START_PRINT macro. There are several benefits to preheating the nozzle. 1) Gives the bed additional time to diffuse the heat. 2) Softens plastic that may be stuck in the nozzle so it doesn't block your probe from triggering. 3) If using a non thermally compensated inductive probe, it makes the temperature and thus the offset of the probe more predictable and consistent. | -| variable_start_print_heat_chamber_bed_temp | Number | 115 | The bed temperature to use when heating the chamber when the `CHAMBER_TEMP` parameter is supplied to the `START_PRINT` macro. | | variable_preheat_extruder_temp | Number | 150 | The temperature to preheat the extruder to, to soften the material at the nozzle tip | - -### Bed Mesh Calibration +## Bed Mesh Calibration +`[gcode_macro RatOS]` | Name | Possible Values | Default | | --------------------------- | --------------- | ------- | | variable_calibrate_bed_mesh | True / False | True | +| variable_adaptive_mesh | True / False | True | Whether or not to calibrate a bed mesh before each print. If you prefer calibrating your bed mesh manually instead of on each print, you can disable it by setting this to `False`. Disabling `variable_calibrate_bed_mesh` will stop RatOS from loading a bed mesh entirely. If you want it to load a mesh, you can set `variable_bed_mesh_profile` to the name of the profile you want it to load. @@ -79,16 +102,19 @@ Whether or not to calibrate a bed mesh before each print. If you prefer calibrat Use this variable to set name for the bed_mesh profile that RatOS calibrate and loads. If `variable_calibrate_bed_mesh` is `False` you must set this variable to the profile name you wish to load, or no bed mesh will be loaded. If variable_calibrate_bed_mesh is `True` and this variable isn't set, RatOS will use `ratos` as the profile name. -### Nozzle Priming +## Nozzle Priming +`[gcode_macro RatOS]` | Name | Possible Values | Default | Description | | ------------------------------- | --------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| variable_nozzle_priming | "primeline" / "primeblob" / False | "primeblob" | Whether or not to prime the nozzle during the START_PRINT macro. "primeline" will make START_PRINT draw a short line to prime the nozzle. "primeblob" will put a small blob at the edge of the bed that is intended to wrap around the nozzle, then lifts the toolhead out of it while extruding a small line, effective for cleaning the nozzle and it's easy to clean up. | +| variable_nozzle_priming | "primeblob" / False | "primeblob" | Whether or not to prime the nozzle during the START_PRINT macro. "primeblob" will put a small blob at the edge of the bed that is intended to wrap around the nozzle, then lifts the toolhead out of it while extruding a small line, effective for cleaning the nozzle and it's easy to clean up. | | variable_nozzle_prime_start_x | "min" / "max" / number | "max" | Where to place the primeline or blob in X. "min" starts the blob or line at x=0 + some safety margin. "max" starts the blob or line at x=max - some safety margin. If set to a number, that number will be used as the starting x coordinate of the line or blob. | | variable_nozzle_prime_start_y | "min" / "max" / number | "min" | Where to place the primeline or blob in Y. "min" starts the blob or line at y=0 + some safety margin. "max" starts the blob or line at y=max - some safety margin. If set to a number, that number will be used as the starting y coordinate of the line or blob. | | variable_nozzle_prime_direction | "auto" / "forwards" / "backwards | "auto" | The direction to draw the line or blob in, if "backwards" the toolhead will move toward the front of the printer, if "forwards" it will move towards the back. When set to "auto" it will move towards the middle regardless of `variable_nozzle_prime_start_y`. | +| variable_nozzle_prime_bridge_fan | number | 102 | priming fan speed 0-255 | -### Filament loading/unloading +## Filament loading/unloading +`[gcode_macro RatOS]` | Name | Possible Values | Default | Description | | ------------------------------- | --------------- | ------- | --------------------------------------------------------------------------------- | @@ -97,7 +123,8 @@ Use this variable to set name for the bed_mesh profile that RatOS calibrate and | variable_filament_load_length | number | 100 | How much to extrude in mm when loading filament to get the filament to the nozzle | | variable_filament_load_speed | number | 10 | How fast to extrude the `filament_load_length` in mm/s | -### Parking +## Parking +`[gcode_macro RatOS]` | Name | Possible Values | Default | Description | | ---------------------------------- | --------------------------- | --------- | --------------------------------------------------------------------------- | @@ -108,9 +135,90 @@ Use this variable to set name for the bed_mesh profile that RatOS calibrate and | variable_end_print_park_x | number / undefined | undefined | Custom X coordinate to park the toolhead after ending or canceling a print. | | variable_end_print_park_z_hop | number | number | How many mm to lift the nozzle when after ending or cancelling a print. | | variable_pause_print_park_in | "back" / "center" / "front" | "back" | Where to park the toolhead when pausing a print. | -| variable_pause_print_park_x | number / undefined | undefined | Custom X coordinate to park the toolhead when pausing a print. | -### Stowable probes +## Toolhead configuration +`[gcode_macro T0]` + +| Name | Possible Values | Default | Description | +| --------------------------------------------------- | ----------------- | ------- | ------------------------------------------------------------------------- | +| variable_hotend_type | "SF", "HF", "UHF" | | Nozzle type. used for loading/unloading macros. | +| variable_has_cht_nozzle | number | | Nozzle type. used for loading/unloading macros. | +| variable_cooling_position_to_nozzle_distance | number | 40 | MM from the cooling position to the nozzles melting zone. | +| variable_tooolhead_sensor_to_extruder_gear_distance | number | 15 | MM from the toolhead filament sensor trigger point to the extruder gears. | +| variable_extruder_gear_to_cooling_position_distance | number | 30 | MM from the extruder gears to the cooling zone. | +| variable_filament_loading_nozzle_offset | number | -5 | MM loading offset for fine tuning. | +| variable_filament_grabbing_length | number | 5 | MM filament grabbing length when inserting filament into the extruder. | +| variable_filament_grabbing_speed | number | 1 | Filament grabbing speed. | +| variable_enable_insert_detection | True / False | True | Enable the filament sensor insert detection. | +| variable_enable_runout_detection | True / False | True | Enable the filament sensor runout detection. | +| variable_enable_clog_detection | True / False | True | Enable the filament sensor clog detection. | +| variable_unload_after_runout | True / False | True | Unload filament from toolhead after if runout has been detected. | +| variable_resume_after_insert | True / False | True | Auto resume a paused print after runout and insert. | +| variable_purge_after_load | number | 0 | Purge x mm after the filament has been loaded to the nozzle tip. | +| variable_purge_before_unload | number | 0 | Purge x mm before the filament unloads. | +| variable_extruder_load_speed | number | 60 | Extruder/cooling zone loading speed. | +| variable_filament_load_speed | number | 10 | Filament nozzle loading speed. | +| variable_temperature_offset | number | 0 | Adds a positive or negative offset to the nozzle temperature. | +| variable_has_oozeguard | True / False | False | Toolhead has a oozeguard. | +| variable_has_front_arm_nozzle_wiper | True / False | False | Toolhead has a front arm nozzle wiper. | +| variable_loading_position | number | 0 | X-position for filament loading/unloading actions. | +| variable_parking_position | number | 0 | Toolhead parking x-position. | + +## VAOC +`[gcode_macro _VAOC]` + +| Name | Possible Values | Default | Description | +| ----------------------------------- | --------------- | ------- | ----------------------------------------------------------------------- | +| variable_is_fixed | True / False | False | VAOC is installed on a fix position. | +| variable_safe_z | number | 60 | Safe z-height for xy travel moves. | +| variable_auto_z_offset_calibration | True / False | True | Performs a auto z-offset calibration before the print starts if needed. | +| variable_enable_camera_cooling | True / False | True | Enables the part cooling fan of the currently loaded toolhead. | +| variable_camera_cooling_fan_speed | number | 0.3 | Part cooling fan speed of the currently loaded toolhead. | +| variable_camera_cooling_temperature | number | 50 | Enables the integrated VAOC fan at the configured bed temperature. | +| variable_toolchange_travel_speed | number | 300 | XY travel move speeds. | +| variable_toolchange_travel_accel | number | 5000 | XY travel move sccelerations. | + +## IDEX +`[gcode_macro RatOS]` + +| Name | Possible Values | Default | Description | +| ------------------------------------ | --------------- | ------- | ------------------------------------------------------------------------------------------ | +| variable_auto_center_subject | True / False | False | Experimental auto centering subject on build plate for copy and mirror mode. | +| variable_toolchange_zhop | number | 2.0 | Toolshift z-hop. | +| variable_toolchange_zspeed | number | 25 | Toolshift z-hop speed. | +| variable_toolchange_sync_fans | True / False | False | Synchronizes fan speeds while printing. | +| variable_toolchange_combined_zhop | True / False | False | Combines z-hop and retract/deretract moves for toolshifts. | +| variable_toolchange_travel_speed | number | 300 | Toolshift travel speed. | +| variable_toolchange_travel_accel | number | 5000 | Toolshift travel acceleration. | +| variable_toolchange_extrusion | number | 2.0 | Toolshift deretraction. | +| variable_toolchange_retraction | number | 2.0 | Toolshift retraction. | +| variable_toolchange_feedrate | number | 7200 | Extruder feedrate for retract/deretract moves for toolshifts. | +| variable_toolchange_prepurging_timer | number | 0 | Prepurge some filament before going back to the buildplate after X seconds of inactivity. | +| variable_toolchange_purge | number | 25 | MM of filament that gets prepruged in case the timer has been configured, | +| variable_toolchange_standby_temp | number | -1 | If configured the toolheads are going into standby mode when parked. | +| variable_toolchange_first_purge | number | 50 | MM of filament that gets purged before a toolheads first use. | + +## Beacon probe +`[gcode_macro RatOS]` + +| Name | Possible Values | Default | Description | +| ---------------------------------------------- | --------------- | ------- | --------------------------------------------------------- | +| variable_beacon_bed_mesh_scv | number | 25 | Square corner velocity for beacon proximity bed meshing. | +| variable_beacon_contact_z_homing | True / False | False | Use beacon contact for z-homing. | +| variable_beacon_contact_z_calibration | True / False | False | Use beacon contact z-calibration. | +| variable_beacon_contact_calibration_location | number | 130 | Beacon contact z-calibration location. | +| variable_beacon_contact_calibrate_margin_x | number | 30 | Beacon contact z-calibration x-margin. | +| variable_beacon_contact_bed_mesh | True / False | False | Use beacon contact for bed meshing. | +| variable_beacon_contact_bed_mesh_samples | number | 2 | Beacon contact bed mesh probe samples. | +| variable_beacon_contact_z_tilt_adjust | True / False | False | Use beacon contact for z-tilting. | +| variable_beacon_contact_z_tilt_adjust_samples | number | 2 | Beacon contact z-tilt probe samples. | +| variable_beacon_contact_prime_probing | True / False | False | Use beacon contact to probe for prime blobs. | +| variable_beacon_contact_calibration_temp | number | 150 | Beacon contact z-calibration nozzle temperature. | +| variable_beacon_contact_expansion_compensation | True / False | False | Use nozzle thermal expansion compensation. | +| variable_beacon_contact_expansion_multiplier | number | 1.0 | Multiplier for the nozzle thermal expansion compensation. | + +## Stowable probes +`[gcode_macro RatOS]` These variables are only relevant when using a stowable probe such as Euclid or Klicky. Use these to customize and finetune the deployment and stowing procedures. @@ -121,7 +229,7 @@ These variables are only relevant when using a stowable probe such as Euclid or | variable_stowable_probe_position_dock | Tuple | undefined | The coordinates of the toolhead when it's positioned perfectly inside the dock for pickup. Example: `[0, 0]` | | variable_stowable_probe_position_exit | Tuple | undefined | The coordinates to move the toolhead to when exiting the dock while deploying or entering the dock while stowing. Example: `[0, 60]` | -### Skew profile +## Skew profile | Name | Possible Values | Default | Description | | --------------------- | ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -137,62 +245,84 @@ gcode: SETUP_KAMP_MESHING ``` -### \_USER_START_PRINT_BEFORE_HOMING +### Available user macro hooks + +- **\_USER_START_PRINT_BEFORE_HOMING** + + Runs before the printer homes at the start of START_PRINT. + +- **\_USER_START_PRINT_HEAT_CHAMBER** + + Runs right after the chamber has started heating, if CHAMBER_TEMP is supplied to START_PRINT. + +- **\_USER_START_PRINT_AFTER_HEATING_BED** + + Runs right after the bed has reached temp, before the internal \_START_PRINT_AFTER_HEATING_BED -Runs before the printer homes at the start of START_PRINT. +- **\_USER_START_PRINT_BED_MESH** -### \_USER_START_PRINT_HEAT_CHAMBER + Runs before \_START_PRINT_BED_MESH -Runs right after the chamber has started heating, if CHAMBER_TEMP is supplied to START_PRINT. +- **\_USER_START_PRINT_PARK** -### \_USER_START_PRINT_AFTER_HEATING_BED + Runs before \_START_PRINT_PARK -Runs right after the bed has reached temp, before the internal \_START_PRINT_AFTER_HEATING_BED +- **\_USER_START_PRINT_AFTER_HEATING_EXTRUDER** -### \_USER_START_PRINT_BED_MESH + Runs just before \_START_PRINT_AFTER_HEATING_EXTRUDER -Runs before \_START_PRINT_BED_MESH +- **\_USER_END_PRINT_BEFORE_HEATERS_OFF** -### \_USER_START_PRINT_PARK + Runs before the heaters are turned off in END_PRINT -Runs before \_START_PRINT_PARK +- **\_USER_END_PRINT_AFTER_HEATERS_OFF** -### \_USER_START_PRINT_AFTER_HEATING_EXTRUDER + Runs after the heaters are turned off in END_PRINT -Runs just before \_START_PRINT_AFTER_HEATING_EXTRUDER +- **\_USER_END_PRINT_PARK** -### \_USER_END_PRINT_BEFORE_HEATERS_OFF + Runs before the toolhead is parked in END_PRINT -Runs before the heaters are turned off in END_PRINT +- **\_USER_START_PRINT** -### \_USER_END_PRINT_AFTER_HEATERS_OFF + Runs before the START_PRINT macro -Runs after the heaters are turned off in END_PRINT +- **\_USER_END_START_PRINT** -### \_USER_END_PRINT_PARK + Runs after the START_PRINT macro -Runs before the toolhead is parked in END_PRINT +- **\_USER_START_FEATURE** + +- **\_USER_END_FEATURE** ## Internal macro hooks These hooks are used internally, so if you override these be sure to copy paste the original implementation and modify that or you may break some functionality. Remember to check if there's an override in the printer's macro.cfg file, in which case that's the one you would copy. -### \_START_PRINT_HEAT_CHAMBER +### Available internal macro hooks + +- **\_START_PRINT_HEAT_CHAMBER** + + Heats the chamber, if CHAMBER_TEMP is supplied to START_PRINT. + +- **\_START_PRINT_AFTER_HEATING_BED** + + Runs right after the bed has reached temp, after \_USER_START_PRINT_AFTER_HEATING_BED. It is usually used for additional bed calibration, such as Z_TILT_ADJUST or QUAD_GANTRY_LEVELING depending on the printer. + +- **\_START_PRINT_BED_MESH** -Heats the chamber, if CHAMBER_TEMP is supplied to START_PRINT. + Handles bed meshing logic. -### \_START_PRINT_AFTER_HEATING_BED +- **\_START_PRINT_PARK** -Runs right after the bed has reached temp, after \_USER_START_PRINT_AFTER_HEATING_BED. It is usually used for additional bed calibration, such as Z_TILT_ADJUST or QUAD_GANTRY_LEVELING depending on the printer. + Parks the extruder while heating the nozzle to print temperature. -### \_START_PRINT_BED_MESH +- **\_START_PRINT_AFTER_HEATING_EXTRUDER** -Handles bed meshing logic. + Primes the nozzle and loads the skew profile if any is defined in the RatOS variables. -### \_START_PRINT_PARK +- **\_END_PRINT_AFTER_HEATERS_OFF** -Parks the extruder while heating the nozzle to print temperature. + Runs right after the heaters have been turned off in the END_PRINT macro. -### \_START_PRINT_AFTER_HEATING_EXTRUDER -Primes the nozzle and loads the skew profile if any is defined in the RatOS variables. diff --git a/site/docs/configuration/macros_list.md b/site/docs/configuration/macros_list.md new file mode 100644 index 000000000..a6e196647 --- /dev/null +++ b/site/docs/configuration/macros_list.md @@ -0,0 +1,270 @@ +# macros.cfg + +- PAUSE +- RESUME `[TOOLHEAD]` +- CANCEL_PRINT +- START_PRINT `[X0|X1|Y0|Y1|FIRST_X|FIRST_Y|TOTAL_TOOLSHIFTS|INITIAL_TOOL|CHAMBER_TEMP|BED_TEMP|TOTAL_LAYER_COUNT|EXTRUDER_TEMP|POST_PROCESSOR_VERSION|EXTRUDER_OTHER_LAYER_TEMP|MIN_X|MAX_X|USED_TOOLS|WIPE_ACCEL|FIRST_X|FIRST_Y]` +- _START_PRINT_BEFORE_HEATING_BED `[IDEX_MODE|T|BOTH_TOOLHEADS]` +- _START_PRINT_AFTER_HEATING_BED `[IDEX_MODE|T|BOTH_TOOLHEADS]` +- _START_PRINT_AFTER_HEATING_EXTRUDER `[X0|Y1|IDEX_MODE|BOTH_TOOLHEADS|INITIAL_TOOLHEAD]` +- _PRIME `[INITIAL_TOOLHEAD|BOTH_TOOLHEADS|IDEX_MODE|Y1]` +- _START_PRINT_HEAT_CHAMBER `[CHAMBER_TEMP|BED_TEMP]` +- END_PRINT +- _END_PRINT_BEFORE_HEATERS_OFF +- _END_PRINT_AFTER_HEATERS_OFF +- _SET_EXTRUSION_MODE + +# homing.cfg + +- ratos_homing `[X|Y|Z]` +- HOME_X `[X|Y|Z]` +- HOME_Y `[X|Y|Z]` +- HOME_Z `[X|Y|Z]` +- HOME_X_SENSORLESS +- HOME_Y_SENSORLESS +- MAYBE_HOME `[X|Y|Z]` + +# shell-macros.cfg + +- GENERATE_SHAPER_GRAPHS `[TOOLHEAD|AXIS|FREQUENCY_START|FREQUENCY_END|HZ_PER_SEC]` +- generate_shaper_graph_x +- generate_shaper_graph_y +- MEASURE_COREXY_BELT_TENSION `[TOOLHEAD|FREQUENCY_START|FREQUENCY_END|HZ_PER_SEC]` +- generate_belt_tension_graph + +# macros/calibration.cfg + +- PID_CALIBRATE_HOTEND `[TEMP|TOOLHEAD]` +- PID_CALIBRATE_BED `[TEMP]` +- INITIALIZE_PA_TUNING `[START|FACTOR]` + +# macros/led_control.cfg + +- _LED_START_PRINTING +- _LED_START_PRINTING_ERROR +- _LED_PRINTING `[TOOLHEAD]` +- _LED_PAUSE +- _LED_LOADING_FILAMENT `[TOOLHEAD]` +- _LED_FILAMENT_LOADED `[TOOLHEAD]` +- _LED_FILAMENT_RUNOUT `[TOOLHEAD]` +- _LED_FILAMENT_CLOG `[TOOLHEAD]` +- _LED_UNLOADING_FILAMENT `[TOOLHEAD]` +- _LED_FILAMENT_UNLOADED `[TOOLHEAD]` +- _LED_DEACTIVATE_TOOLHEAD `[TOOLHEAD]` +- _LED_TOOLHEAD_STANDBY `[TOOLHEAD]` +- _LED_TOOLHEAD_WAKEUP `[TOOLHEAD]` +- _LED_MOTORS_OFF +- _LED_INPUT_SHAPER_START +- _LED_INPUT_SHAPER_END +- _LED_VAOC_ON +- _LED_VAOC_OFF +- _LED_ACTION `[TOOLHEAD]` +- _LED_SUCCESS `[TOOLHEAD]` +- _LED_ERROR `[TOOLHEAD]` +- _LED_ON `[TOOLHEAD]` +- _LED_OFF `[TOOLHEAD]` +- _LED_STANDBY `[TOOLHEAD]` +- _LED_SET `[TOOLHEAD|R|G|B]` + +# macros/load_filament.cfg + +- LOAD_FILAMENT `[TEMP|TOOLHEAD]` +- _DEFAULT_LOAD_FILAMENT `[TEMP]` +- _IDEX_LOAD_FILAMENT `[TEMP|TOOLHEAD]` +- _LOAD_FILAMENT `[TOOLHEAD]` +- _LOAD_FILAMENT_FROM_EXTRUDER_TO_COOLING_ZONE `[TOOLHEAD]` +- _LOAD_FILAMENT_FROM_COOLING_ZONE_TO_NOZZLE `[TOOLHEAD]` +- _ON_TOOLHEAD_FILAMENT_SENSOR_INSERT `[TOOLHEAD]` +- _ON_BOWDEN_FILAMENT_SENSOR_INSERT `[TOOLHEAD]` +- _PURGE_BEFORE_UNLOAD `[TOOLHEAD]` +- _PURGE_FILAMENT `[TOOLHEAD|E|R]` +- _MOVE_TO_PARKING_POSITION `[TOOLHEAD]` +- _MOVE_TO_LOADING_POSITION `[TOOLHEAD]` +- _CLEANING_MOVE `[TOOLHEAD]` + +# macros/unload_filament.cfg + +- UNLOAD_FILAMENT `[TEMP|TOOLHEAD]` +- _DEFAULT_UNLOAD_FILAMENT `[TEMP]` +- _IDEX_UNLOAD_FILAMENT `[TEMP|TOOLHEAD]` +- _UNLOAD_FILAMENT `[TOOLHEAD]` +- _UNLOAD_FILAMENT_FROM_NOZZLE_TO_COOLING_ZONE `[TOOLHEAD]` +- _UNLOAD_FILAMENT_FROM_COOLING_ZONE_TO_EXTRUDER `[TOOLHEAD]` +- _UNLOAD_SF `[TOOLHEAD]` +- _UNLOAD_HF `[TOOLHEAD]` +- _UNLOAD_UHF `[TOOLHEAD]` +- _UNLOAD_SF_CHT `[TOOLHEAD]` +- _UNLOAD_HF_CHT `[TOOLHEAD]` +- _UNLOAD_UHF_CHT `[TOOLHEAD]` +- _TIP_FORMING `[COOLING_MOVES|COOLING_MOVE_LENGTH|START_COOLING_SPEED|END_COOLING_SPEED|DIP|DIP_LENGTH|DIP_SPEED|DIP_RETRACT_SPEED|RETRACT_LENGTH|START_RETRACT_SPEED|END_RETRACT_SPEED]` +- _ON_FILAMENT_SENSOR_BUTTON_PRESSED `[TOOLHEAD]` +- _ON_TOOLHEAD_FILAMENT_SENSOR_RUNOUT `[TOOLHEAD]` +- _ON_TOOLHEAD_FILAMENT_SENSOR_CLOG `[TOOLHEAD]` +- _ON_BOWDEN_FILAMENT_SENSOR_RUNOUT `[TOOLHEAD]` +- _ON_BOWDEN_FILAMENT_SENSOR_CLOG `[TOOLHEAD]` +- _ON_FILAMENT_END `[TOOLHEAD|CLOGGED]` +- M600 + +# macros/mesh.cfg + +- _START_PRINT_BED_MESH `[IDEX_MODE|X0|X1|Y0|Y1|T|BOTH_TOOLHEADS]` +- CALIBRATE_ADAPTIVE_MESH `[IDEX_MODE|BOTH_TOOLHEADS|PROFILE|X0|X1|Y0|Y1|T]` + +# macros/overrides.cfg + +- M84 +- M104 `[S|T]` +- M109 `[S|T]` +- SET_HEATER_TEMPERATURE `[HEATER|TARGET]` +- TEMPERATURE_WAIT `[SENSOR|MINIMUM|MAXIMUM]` + +# macros/parking.cfg + +- _START_PRINT_PARK +- _END_PRINT_PARK +- _PARK `[X|LOCATION]` + +# macros/priming.cfg + +- SAVE_PROBE_RESULT `[VARIABLE]` +- PROBE_FOR_PRIMING `[TOOLHEAD|IDEX_MODE]` +- RESET_PRIME_PROBE_STATE +- PROBE_CURRENT_POSITION +- PRIME_BLOB `[IDEX_MODE|INITIAL_TOOLHEAD|BOTH_TOOLHEADS|Y1]` + +# macros/user-hooks.cfg + +- _USER_START_PRINT_BEFORE_HOMING +- _USER_START_PRINT_AFTER_HEATING_BED +- _USER_START_PRINT_BED_MESH +- _USER_START_PRINT_PARK +- _USER_START_PRINT_AFTER_HEATING_EXTRUDER +- _USER_START_PRINT_HEAT_CHAMBER +- _USER_END_PRINT_BEFORE_HEATERS_OFF +- _USER_END_PRINT_AFTER_HEATERS_OFF +- _USER_END_PRINT_PARK +- _USER_START_PRINT +- _USER_END_START_PRINT +- _USER_START_FEATURE +- _USER_END_FEATURE + +# macros/util.cfg + +- ECHO_RATOS_VARS +- RATOS_INIT +- INITIAL_FRONTEND_UPDATE +- CALCULATE_PRINTABLE_AREA +- CACHE_TOOLHEAD_SETTINGS `[KEY]` +- RESTORE_TOOLHEAD_SETTINGS `[KEY]` +- SET_MACRO_TRAVEL_SETTINGS +- SET_CENTER_KINEMATIC_POSITION +- IDEX_SET_CENTER_KINEMATIC_POSITION +- VERIFY_HYBRID_INVERTED +- RATOS_ECHO `[DEBUG|PREFIX|MSG]` +- ENABLE_DEBUG `[FILTER]` +- DISABLE_DEBUG +- DEBUG_ECHO `[PREFIX|MSG]` +- START_FEATURE `[FEATURE]` +- END_FEATURE `[FEATURE]` +- _ON_LAYER_CHANGE `[LAYER]` + +# macros/idex/idex_is.cfg + +- SHAPER_CALIBRATE +- GENERATE_SHAPER_GRAPHS `[TOOLHEAD|AXIS|FREQUENCY_START|FREQUENCY_END|HZ_PER_SEC]` +- generate_shaper_graphs +- MEASURE_COREXY_BELT_TENSION `[TOOLHEAD|AXIS|FREQUENCY_START|FREQUENCY_END]` +- generate_tension_graphs + +# macros/idex/idex.cfg + +- IDEX_SINGLE +- _IDEX_SINGLE `[INIT|X]` +- IDEX_COPY +- _IDEX_COPY `[Y|DANCE]` +- IDEX_MIRROR +- _IDEX_MIRROR `[DANCE|PRIMING]` +- _IDEX_SET_TOOLHEADS `[MIRROR_PRIMING]` +- IDEX_PARK +- PARK_TOOLHEAD +- JOIN_SPOOLS `[SPOOLS]` +- _IDEX_JOIN_SPOOLS `[ENABLE]` +- _JOIN_SPOOL `[TOOLHEAD]` +- REMAP_TOOLHEADS `[TOOLHEADS]` +- _IDEX_REMAP_TOOLHEADS `[ENABLE]` + +# macros/idex/overrides.cfg + +- SET_PRESSURE_ADVANCE `[SYNC_TOOLHEADS|ADVANCE|SMOOTH_TIME]` +- M106 `[S|P]` +- M107 `[P]` +- SDCARD_PRINT_FILE + +# macros/idex/toolheads.cfg + +- _SELECT_TOOL `[T|X|Y|Z|TOOLSHIFT|PARK_T0|PARK_T1]` +- _TOOLHEAD_STANDBY `[TOOLHEAD]` +- _TOOLHEAD_WAKEUP `[TOOLHEAD|FAN_SPEED|X|Y|Z|TOOLSHIFT_COUNT|]` +- _TOOLCHANGE `[T|X|Y|Z|PARK_T0|PARK_T1|TOOLSHIFT]` +- _ZHOP_BEFORE_TOOLCHANGE `[T|SYNC|Z_HOP]` +- _ZDROP_AFTER_TOOLCHANGE `[T|SYNC|Z_DROP]` +- _EXTRUDE `[T]` +- _DEACTIVATE_TOOLHEAD `[TOOLHEAD]` +- _INIT_TOOLHEADS +- _SET_TOOLHEAD_OFFSET `[T|MOVE]` +- TOOLSHIFT_CONFIG `[SPEED|ACCEL|RETRACT|EXTRUDE|FEEDRATE|Z_HOP|Z_SPEED|COMBINED_ZHOP|SYNC_FANS|AUTO_PURGE_TIME|PURGE|STANDBY_TEMP]` + +# macros/idex/vaoc.cfg + +- _VAOC_START `[T0_TEMP|T1_TEMP|BED_TEMP]` +- _START_VAOC `[AUTO_Z_OFFSET]` +- _VAOC_END +- _VAOC_LOAD_TOOL `[T|AUTO_Z_OFFSET]` +- _VAOC_SET_CAMERA_COOLING `[T|AUTO_Z_OFFSET]` +- _VAOC_SET_TOOL +- _VAOC_MOVE `[X|Y|Z]` +- _VAOC_CALIBRATE_Z_OFFSET `[AUTO_Z_OFFSET]` +- _VAOC_PROBE_Z_OFFSET `[AUTO_Z_OFFSET]` +- _VAOC_Z_OFFSET_PROBE_CURRENT_POSITION +- _VAOC_Z_OFFSET_PROBE_SAVE_PROBE_RESULT +- _VAOC_ECHO_Z_OFFSET +- _VAOC_CALIBRATE_TEMP_OFFSET +- _VAOC_CALIBRATE_NOZZLE_TEMP_OFFSET +- _VAOC_PROBE_NOZZLE_TEMP_OFFSET `[TEMP]` +- _VAOC_STORE_NOZZLE_TEMP_OFFSET `[TEMP]` +- _VAOC_ECHO_NOZZLE_TEMP_OFFSETS +- _VAOC_RESET +- _ECHO_VAOC_VARS +- _VAOC_SWITCH_LED `[STATE]` + +# z-probe/beacon.cfg + +- _BEACON_INIT +- _BEACON_SET_NOZZLE_TEMP_OFFSET `[TOOLHEAD|RESET]` +- _BEACON_REMOVE_NOZZLE_TEMP_OFFSET +- BEACON_CALIBRATE_NOZZLE_TEMP_OFFSET +- _BEACON_PROBE_NOZZLE_TEMP_OFFSET `[TEMP]` +- _BEACON_STORE_NOZZLE_TEMP_OFFSET `[TEMP]` +- _BEACON_ECHO_NOZZLE_TEMP_OFFSETS +- BEACON_MEASURE_GANTRY_TWIST +- POKELOOP + +# z-probe/microprobe.cfg + +- BTT_MICROPROBE_ENABLE +- BTT_MICROPROBE_DEPLOY +- BTT_MICROPROBE_STOW + +# z-probe/stowable_probe.cfg + +- _ASSERT_PROBE_STATE `[TO_BE]` +- ASSERT_PROBE_DEPLOYED +- ASSERT_PROBE_STOWED +- STOWABLE_PROBE_BEGIN_BATCH +- STOWABLE_PROBE_END_BATCH +- DEPLOY_PROBE +- STOW_PROBE +- BED_MESH_CALIBRATE +- PROBE_CALIBRATE +- PROBE +- PROBE_ACCURACY diff --git a/site/docs/slicers.md b/site/docs/slicers.md index b432d8d9c..169c794c1 100644 --- a/site/docs/slicers.md +++ b/site/docs/slicers.md @@ -1,84 +1,378 @@ # Slicer Configuration +- [Prusa Slicer](#prusa-slicer) +- [Super Slicer](#super-slicer) +- [Orca Slicer](#orca-slicer) +- [Cura](#cura) +- [Simplify 3D V5](#simplify-3d-v5) +- [IdeaMaker](#ideamaker) +- [Slicer thumbnails](#slicer-thumbnails) + # Macros RatOS comes with START_PRINT and END_PRINT macros that you can call directly from your slicers. This way the printer knows how to start a print, and you can there easily switch between slicers without worrying if you changed anything in another slicer. -The g-code for these macros are found in `config/printers/[PRINTER_NAME]/macros.cfg` +The g-code for these macros are found in `config/RatOS/macros.cfg` + +# Disable any "advanced extruder pressure" settings +Some slicers advertise an "advanced extruder pressure" capability. It is recommended to keep these options disabled when using Klipper as they are likely to result in poor quality prints. Consider using Klipper's pressure advance instead. + +Specifically, these slicer settings can instruct the firmware to make wild changes to the extrusion rate in the hope that the firmware will approximate those requests and the printer will roughly obtain a desirable extruder pressure. Klipper, however, utilizes precise kinematic calculations and timing. When Klipper is commanded to make significant changes to the extrusion rate it will plan out the corresponding changes to velocity, acceleration, and extruder movement - which is not the slicer's intent. The slicer may even command excessive extrusion rates to the point that it triggers Klipper's maximum extrusion cross-section check. + +In contrast, it is okay (and often helpful) to use a slicer's "retract" setting, "wipe" setting, and/or "wipe on retract" setting. + +# Prusa Slicer -## Cura +*Prusa Slicer comes with full IDEX support and is the recommended slicer for all RatRig printers.* + +:::info +You should be using "Klipper" as the gcode flavor and have the "Use relative E distances" box checked in Printer Settings -> General -> Advanced. +::: :::info This is the ONLY gcode you need, delete everything else. Copy paste the following **as is**. +Make sure the box labeled "Emit temperature commands automatically" is **unchecked** under "Start G-Code options". ::: -Machine start gcode +### Configuration + +- Select `Klipper` in Printer Settings -> General -> Firmware -> G-code Flavor +- Enable `Use relative E distances` in Printer Settings -> General -> Advanced +- Disable `Arc fitting` in Print Settings -> Advanced -> Slicing + +### Additional IDEX Configuration + +- Select `2` in Printer Settings -> General -> Capabilities -> Extruder +- Disable `Single Extruder Multi Material` in Printer Settings -> General -> Capabilities + +### GCode Settings + +Start GCode for single toolhead printers + +:::info +Make sure the box labeled "Emit temperature commands automatically" is **unchecked** under "Start G-Code options". +::: ```properties -START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} +START_PRINT EXTRUDER_TEMP={first_layer_temperature[0]} EXTRUDER_OTHER_LAYER_TEMP={temperature[0]} BED_TEMP=[first_layer_bed_temperature] START_CHAMBER_TEMP=[chamber_temperature] CHAMBER_TEMP=[chamber_temperature] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]} ``` -machine end gcode +Start GCode for IDEX printers + +:::info +Make sure the box labeled "Emit temperature commands automatically" is **unchecked** under "Start G-Code options". +::: + +```properties +START_PRINT EXTRUDER_TEMP={first_layer_temperature[0]},{first_layer_temperature[1]} EXTRUDER_OTHER_LAYER_TEMP={temperature[0]},{temperature[1]} BED_TEMP=[first_layer_bed_temperature] START_CHAMBER_TEMP=[chamber_temperature] CHAMBER_TEMP=[chamber_temperature] INITIAL_TOOL={initial_tool} TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]} +``` + +End GCode ```properties END_PRINT ``` -## PrusaSlicer +Before layer change GCode + +```properties +;BEFORE_LAYER_CHANGE +;[layer_z] +``` + +After layer change GCode + +```properties +;AFTER_LAYER_CHANGE +;[layer_z] +G92 E0 +_ON_LAYER_CHANGE LAYER={layer_num + 1} +``` + +Tool change GCode for IDEX printers + +```properties +T[next_extruder] +``` + +Between objects GCode + +```properties +;BETWEEN_OBJECTS +G92 E0 +``` + +Start filament GCode + +```properties +; Filament gcode +SET_PRESSURE_ADVANCE ADVANCE=0.05 +``` + +Pause GCode + +```properties +PAUSE +``` + +# Super Slicer + +*Super Slicer supports IDEX printers, but it is not recommended to use.* + +:::info +You should be using "Klipper" as the gcode flavor and have the "Only custom Start G-Code" box checked in Printer Settings -> Custom G-Code and "Use relative E distances" box checked in Printer Settings -> General -> Advanced. +::: :::info This is the ONLY gcode you need, delete everything else. Copy paste the following **as is**. ::: -Start GCode +### Configuration + +- Select `Klipper` in Printer Settings -> General -> Firmware -> G-code Flavor +- Enable `Use relative E distances` in Printer Settings -> General -> Advanced +- Enable `Only custom Start G-Code` in Printer Settings -> Custom G-Code +- Disable `Arc fitting` in Printer Settings -> General -> Firmware + +### Additional IDEX Configuration + +- Select `2` in Printer Settings -> General -> Capabilities -> Extruder +- Disable `Single Extruder Multi Material` in Printer Settings -> General -> Capabilities + +### GCode Settings + +Start GCode for single toolhead printers ```properties -M190 S0 ; Prevents prusaslicer from prepending m190 to the gcode ruining our macro -M109 S0 ; Prevents prusaslicer from prepending m109 to the gcode ruining our macro -START_PRINT EXTRUDER_TEMP=[first_layer_temperature] BED_TEMP=[first_layer_bed_temperature] +G90 +G21 +SET_GCODE_VARIABLE MACRO="RatOS" variable="relative_extrusion" VALUE="True" +START_PRINT EXTRUDER_TEMP={first_layer_temperature[0]} EXTRUDER_OTHER_LAYER_TEMP={temperature[0]} BED_TEMP=[first_layer_bed_temperature] CHAMBER_TEMP=[chamber_temperature] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]} ``` -End GCode +Start GCode for IDEX printers +```properties +G90 +G21 +SET_GCODE_VARIABLE MACRO="RatOS" variable="relative_extrusion" VALUE="True" +START_PRINT EXTRUDER_TEMP={first_layer_temperature[0]},{first_layer_temperature[1]} EXTRUDER_OTHER_LAYER_TEMP={temperature[0]},{temperature[1]} BED_TEMP=[first_layer_bed_temperature] START_CHAMBER_TEMP=[chamber_minimal_temperature] CHAMBER_TEMP=[chamber_temperature] INITIAL_TOOL={initial_tool} TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]} +``` + +End GCode ```properties END_PRINT ``` -## SuperSlicer +Before layer change GCode + +```properties +;BEFORE_LAYER_CHANGE +;[layer_z] +``` + +After layer change GCode + +```properties +;AFTER_LAYER_CHANGE +;[layer_z] +G92 E0 +_ON_LAYER_CHANGE LAYER={layer_num + 1} +``` + +Tool change GCode for IDEX printers + +```properties +T[next_extruder] +``` + +Between objects GCode + +```properties +;BETWEEN_OBJECTS +G92 E0 +``` + +Start filament GCode + +```properties +; Filament gcode +SET_PRESSURE_ADVANCE ADVANCE=0.05 +``` + +Pause GCode + +```properties +PAUSE +``` + +# Orca Slicer + +*Orca Slicer supports IDEX printers, but it is not recommended to use.* :::info -You should be using "Klipper" as the gcode flavor and have the "Only custom Start G-Code" box checked in Printer Settings -> Custom G-Code +You should be using "Klipper" as the gcode flavor and have the "Use relative E distances" box checked in in Printer Settings -> Advance. ::: + :::info This is the ONLY gcode you need, delete everything else. Copy paste the following **as is**. ::: -Start GCode +### Configuration + +- Select `Klipper` in Printer Settings -> Advanced -> G-code Flavor +- Enable `Use relative E distances` in Printer Settings -> Advanced +- Disable `Arc fitting` in Quality -> Precision + +### Additional IDEX Configuration + +- Add a secondary Filament in Main UI -> Filament + +### GCode Settings + +Start GCode for single toolhead printers + ```properties -START_PRINT EXTRUDER_TEMP=[first_layer_temperature] BED_TEMP=[first_layer_bed_temperature] +START_PRINT EXTRUDER_TEMP={first_layer_temperature[0]} EXTRUDER_OTHER_LAYER_TEMP={nozzle_temperature[0]} BED_TEMP=[bed_temperature_initial_layer_single] CHAMBER_TEMP={overall_chamber_temperature} TOTAL_LAYER_COUNT={total_layer_count} X0={adaptive_bed_mesh_min[0]} Y0={adaptive_bed_mesh_min[1]} X1={adaptive_bed_mesh_max[0]} Y1={adaptive_bed_mesh_max[1]} ``` -End GCode +Start GCode for IDEX printers + ```properties +START_PRINT EXTRUDER_TEMP={first_layer_temperature[0]},{first_layer_temperature[1]} EXTRUDER_OTHER_LAYER_TEMP={nozzle_temperature[0]},{nozzle_temperature[1]} BED_TEMP=[bed_temperature_initial_layer_single] CHAMBER_TEMP={overall_chamber_temperature} INITIAL_TOOL={initial_tool} TOTAL_LAYER_COUNT={total_layer_count} X0={adaptive_bed_mesh_min[0]} Y0={adaptive_bed_mesh_min[1]} X1={adaptive_bed_mesh_max[0]} Y1={adaptive_bed_mesh_max[1]} +``` + +End GCode + +``` END_PRINT ``` -## OrcaSlicer +Before layer change GCode + +``` +;BEFORE_LAYER_CHANGE +;[layer_z] +``` + +Layer change GCode + +``` +;AFTER_LAYER_CHANGE +;[layer_z] +G92 E0 +_ON_LAYER_CHANGE LAYER={layer_num + 1} +``` + +Change filament GCode for IDEX printers + +``` +T{next_extruder} +``` + +Printing by object GCode + +``` +;BETWEEN_OBJECTS +G92 E0 +``` + +Filament start GCode + +``` +; Filament gcode +``` + +Pause GCode + +```properties +PAUSE +``` + +# Cura + +*Cura does not support RatRig IDEX printers.* :::info -Make sure to set the GCode flavor to klipper +This is the ONLY gcode you need, delete everything else. Copy paste the following **as is**. ::: -Start GCode +:::info +The "coasting" feature is likely to result in poor quality prints with Klipper. Consider using Klipper's pressure advance instead. + +Specifically, if the slicer dramatically changes the extrusion rate between moves then Klipper will perform deceleration and acceleration between moves. This is likely to make blobbing worse, not better. + +In contrast, it is okay (and often helpful) to use a slicer's "retract" setting, "wipe" setting, and/or "wipe on retract" setting. +::: + +Machine start gcode + ```properties -START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] +START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} X0=%MINX% Y0=%MINY% X1=%MAXX% Y1=%MAXY% ``` -End GCode -``` +machine end gcode + +```properties END_PRINT ``` -## Simplify 3D +To make adaptive meshing work with Cura you need to install a post processing plugin + +1. in cura open menu `Help -> Show configuration folder` +2. Copy the following and save it as `MeshPrintSize.py` in the `scripts` folder + +```python +# -------------------------------------------------------------------------------- +# Original Version from https://gist.github.com/frankbags +# https://gist.github.com/frankbags/c85d37d9faff7bce67b6d18ec4e716ff +# +# Modified version from https://github.com/kmarty +# https://github.com/kmarty/klipper_config_km_addons/blob/master/bed_mesh_calibrate/MeshPrintSize.py +# +# thank you frankbags and kmarty! +# -------------------------------------------------------------------------------- + +import re #To perform the search and replace. + +from ..Script import Script + +class MeshPrintSize(Script): + + def getSettingDataString(self): + return """{ + "name": "Mesh Print Size", + "key": "MeshPrintSize", + "metadata": {}, + "version": 2, + "settings":{} + }""" + + def execute(self, data): + minMaxXY = {'MINX':0,'MINY':0,'MAXX':0,'MAXY':0} + re_pattern = re.compile(r'%(' + r'|'.join(minMaxXY.keys()) + r')%') + minmax_counter = len(minMaxXY) + + for i in range(len(data)): + # in Cura "layer' != "line" :-( + for k,v in minMaxXY.items(): + if minmax_counter: + result = re.search(r';' + k + r':\s*(\d*\.\d+|\d+)', data[i]) + if result: + minMaxXY[k] = result.group(1) + minmax_counter -= 1 + else: + if re_pattern.search(data[i]): + data[i] = re.sub(r'%' + k + r'%', v, data[i]) + + return data +``` + +3. restart cura +4. in cura open menu `Extensions -> Post processing -> Modify G-Code` and select `Mesh Print Size` + +# Simplify 3D V5 + +*Simplify 3D does not support RatRig IDEX printers.* :::info This is the ONLY gcode you need, delete everything else. Copy paste the following **as is**. @@ -87,7 +381,7 @@ This is the ONLY gcode you need, delete everything else. Copy paste the followin Start GCode ```properties -START_PRINT EXTRUDER_TEMP=[extruder0_temperature] BED_TEMP=[bed0_temperature] +START_PRINT EXTRUDER_TEMP=[extruder0_temperature] BED_TEMP=[bed0_temperature] X0=[build_min_x] Y0=[build_min_y] X1=[build_max_x] Y1=[build_max_y] ``` End GCode @@ -96,7 +390,9 @@ End GCode END_PRINT ``` -## IdeaMaker +# IdeaMaker + +*IdeaMaker does not support RatRig IDEX printers.* :::info This is the ONLY gcode you need, delete everything else. Copy paste the following **as is**. @@ -105,7 +401,7 @@ This is the ONLY gcode you need, delete everything else. Copy paste the followin Start GCode ```properties -START_PRINT EXTRUDER_TEMP={temperature_extruder1} BED_TEMP={temperature_heatbed} +START_PRINT EXTRUDER_TEMP={temperature_extruder1} BED_TEMP={temperature_heatbed} X0={print_pos_min_x} Y0={print_pos_min_y} X1={print_pos_max_x} Y1={print_pos_max_y} ``` End GCode @@ -118,6 +414,6 @@ END_PRINT IdeaMaker will complain there's no heating commands, you can safely ignore this. ::: -## Slicer thumbnails +# Slicer thumbnails See the Mainsail documentation: [G-Code Thumbnails in Mainsail](https://docs.mainsail.xyz/overview/features/thumbnails) diff --git a/site/versioned_docs/version-2.0.x/configuration/macros.md b/site/versioned_docs/version-2.0.x/configuration/macros.md index e774b4543..85bb5bbd5 100644 --- a/site/versioned_docs/version-2.0.x/configuration/macros.md +++ b/site/versioned_docs/version-2.0.x/configuration/macros.md @@ -62,7 +62,6 @@ Travel speed to use for gcode moves in RatOS Macro's in mm/s. | Name | Possible Values | Default | Description | | ------------------------------------------ | --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | variable_preheat_extruder | True / False | True | Enables or disables preheating of the nozzle to 150 degrees during the START_PRINT macro. There are several benefits to preheating the nozzle. 1) Gives the bed additional time to diffuse the heat. 2) Softens plastic that may be stuck in the nozzle so it doesn't block your probe from triggering. 3) If using a non thermally compensated inductive probe, it makes the temperature and thus the offset of the probe more predictable and consistent. | -| variable_start_print_heat_chamber_bed_temp | Number | 115 | The bed temperature to use when heating the chamber when the `CHAMBER_TEMP` parameter is supplied to the `START_PRINT` macro. | | variable_preheat_extruder_temp | Number | 150 | The temperature to preheat the extruder to, to soften the material at the nozzle tip | ### Bed Mesh Calibration