diff --git a/readme.txt b/readme.md similarity index 74% rename from readme.txt rename to readme.md index 7d40bc6..04062d9 100644 --- a/readme.txt +++ b/readme.md @@ -27,7 +27,7 @@ Fixes & Improvements: - Chaning filament_drop_length in filament.json no longer breaks color change behavior. ---== INSTALL ==-- +## INSTALL zMod's dev has indicated he intends to eventually integrate this into zMod, but in the meantime, there are two files to install on the printer. @@ -38,30 +38,31 @@ folder - if you do not have one, create it (you do not need to add anything else "filament.json" should replace your existing filament.json file. However, if you have customized this and don't want to replace it, the important things to change are (for ALL filaments): - > filament_unload_before_cutting: Recommended value 20, don't go much higher than that. Might be safer to use a lower + - filament_unload_before_cutting: Recommended value 20, don't go much higher than that. Might be safer to use a lower value, or even zero, for TPU. Higher values save filament. - > nozzle_clean_length: Note that this parameter's name is very misleading; it actually determines how far the filament + - nozzle_clean_length: Note that this parameter's name is very misleading; it actually determines how far the filament is pulled back into the 4-in-1 tube after unloading. Anyway, set it to 70 if you have the 4-in-1 tube style without the screw, or 100 if you have the one with it (or aren't sure). - > filament_unload_speed: Double your existing values. The reason for this is that zMod's existing code doubles the value + - filament_unload_speed: Double your existing values. The reason for this is that zMod's existing code doubles the value when retracting with the IFS alone; since this is the majority of unload, it makes more sense for this speed to be natively specified (and other values based on it to be halved, instead of this one doubled). Ideally, you can use the provided printer profiles. These cover all four options - native screen, zMod-controlled poop -(USE_TRASH_ON_PRINT=1), nopoop, and slicer-controlled poop; and also contain some custom start and filament change gcode +(`USE_TRASH_ON_PRINT=1`), nopoop, and slicer-controlled poop; and also contain some custom start and filament change gcode to verify settings and improve the behavior of the color change process. (Note that custom gcode is NOT required except -when using USE_TRASH_ON_PRINT=2.) +when using `USE_TRASH_ON_PRINT=2`.) If you have adjusted filament_unload_before_cutting in your filament.json, in the Printer settings in OrcaSlicer, adjust the "Nozzle Volume"; this enables more accurate auto-calculated flushing volumes. Calculate this via the following formula: - 144 - (filament_unload_before_cutting * 2.405) - + +`144 - (filament_unload_before_cutting * 2.405)` + The provided profiles are close to the stock AD5X profiles, with the following differences: - Nozzle volume set to 144 (correct value if filament_unload_before_cutting is zero, and a safe value if it isn't) - zMod start GCode in place, with additions to check the correct native screen / use_trash_on_print settings are in place - Filament change GCode to allow max acceleration during filament swaps, and set it back afterwards -- For slicer-controlled poop (USE_TRASH_ON_PRINT=2), the filament change GCode to control this poop is in place +- For slicer-controlled poop (`USE_TRASH_ON_PRINT=2`), the filament change GCode to control this poop is in place - Z-Hop type set to Normal There are many debatable changes that should or shouldn't be put in as defaults. I decided to avoid that debate and skip @@ -69,20 +70,20 @@ most of these - but you can absolutely modify them with your own changes if you instances of OrcaSlicer at the same time, edit the new profile in one and your existing profile in the other, and look for any fields that are highlighted to indicate they're not default values. -Regarding the check for use_trash_on_print settings, unless you disable it, these will automatically be changed to the +Regarding the check for `use_trash_on_print` settings, unless you disable it, these will automatically be changed to the correct ones when starting a print from these profiles. Therefore, except for the native screen vs non-native screen, you -can simply select the right profile and the start gcode will take care of switching the use_trash_on_print mode. +can simply select the right profile and the start gcode will take care of switching the `use_trash_on_print` mode. ---== USING BAMBU STUDIO ==-- +## USING BAMBU STUDIO -!!! BAMBU STUDIO IS ONLY SUPPORTED WITH NATIVE SCREEN OFF AND USE_TRASH_ON_PRINT=2 !!! +**!!! BAMBU STUDIO IS ONLY SUPPORTED WITH NATIVE SCREEN OFF AND `USE_TRASH_ON_PRINT=2` !!! (You can probably make it work with other configurations, but you're on your own for that. You are welcome to use my profiles as a starting point. The start gcode will check for this configuration if you are using the provided -profiles.) +profiles.)** With this version of nopoop, you can use Bambu Studio instead of OrcaSlicer if you prefer. This is very experimental. -Bambu Studio is only supported with USE_TRASH_ON_PRINT = 2, and only supports poop mode. (However, you can effectively +Bambu Studio is only supported with `USE_TRASH_ON_PRINT = 2`, and only supports poop mode. (However, you can effectively achieve nopoop mode by providing sufficient spare objects for all purge to go to.) One upside is that Bambu Studio allows you to poop with custom flush volumes while also respecting purge to infill / etc. @@ -96,42 +97,43 @@ Note that for some reason, Bambu Studio does not let you edit the nozzle volume the printer's config json file and changing it there; you will need to restart Bambu Studio afterwards. ---== MODES ==-- +## MODES -The mode of behavior for color changes is determined by the SAVE_ZMOD_DATA parameter USE_TRASH_ON_PRINT. To configure +The mode of behavior for color changes is determined by the `SAVE_ZMOD_DATA` parameter `USE_TRASH_ON_PRINT`. To configure this: - SAVE_ZMOD_DATA USE_TRASH_ON_PRINT=x + + `SAVE_ZMOD_DATA USE_TRASH_ON_PRINT=x` When this is set to 0: - The printer will not poop during color changes. After cutting the filament, the printer will return to the same location + - The printer will not poop during color changes. After cutting the filament, the printer will return to the same location it was in before the color change, switch the filament while sitting there, and immediately continue with the print. (Generally, this will be on the wipe tower, unless the current print doesn't have one.) Or in other words - the printer skips pooping altogether. On the first few layers, the printer will still travel to the poop chute during changes, but will not produce any poop - this is just to catch leakage and reduce the risk of it forming blobs on the build plate. When this is set to 1: - During color changes, the printer will produce two poops, of length specified by filament_drop_length in filament.json + - During color changes, the printer will produce two poops, of length specified by filament_drop_length in filament.json (plus filament_drop_length_add if the two filaments are different materials rather than just different colors). These poops behave similar to the poops on stock AD5X firmware - ie: they cannot be controlled by the slicer, nor are they included in its time or material estimates. This is the same as zMod's behavior without nopoop. When this is set to 2: - Color change behavior can be chosen in the slicer between nopoop mode (ie: same as mode 0), or yes-poop mode. When poop + - Color change behavior can be chosen in the slicer between nopoop mode (ie: same as mode 0), or yes-poop mode. When poop is enabled in this mode, the poop is controlled by the slicer; as such, it will be included in estimates and will respect your flush volumes configured in the slicer. - Please note, you can only meaningfully use "Purge to object", "Purge to infill", etc when in nopoop mode. This is a + - Please note, you can only meaningfully use "Purge to object", "Purge to infill", etc when in nopoop mode. This is a restriction of the slicer - although it will alter the order in which it performs actions after the color change, it will poop the same amount regardless of these settings. Flush volumes WILL be respected, though! This is a limitation of OrcaSlicer, and can be bypassed by using Bambu Studio instead (however, Bambu Studio does not allow for any nopoop mode); should OrcaSlicer fix this in a future update, it should "just work" with poop mode without any further update to nopoop being necessary. - It appears that it will be possible to use poop mode + purge to these other objects by using Bambu Studio instead of + - It appears that it will be possible to use poop mode + purge to these other objects by using Bambu Studio instead of OrcaSlicer, but I am still investigating this option. ---== USAGE ==-- +## USAGE The easiest way to use this is to use the provided profiles (you can alter most of the settings, just leave the start gcode and filament change gcode alone if you don't know what you're doing; *adding* to the start gcode is fine), and leave the @@ -155,14 +157,14 @@ head move to the trash chute during color changes. No poop will be produced, but instead of going into the wipe tower. It is possible to configure this to happen only up to a certain height on the print. To enable this: - SAVE_VARIABLE VARIABLE=nopoop_trash_skip_height VALUE=5 + - `SAVE_VARIABLE VARIABLE=nopoop_trash_skip_height VALUE=5` This will use the trash chute until the print height reaches 5mm. Beyond that point, color changes will happen at the wipe tower. If you want to enable this for the entire print, set the skip height to 220 or higher; if you want to disable it altogether, set the skip height to 0. ---== RECOMMENDATIONS ==-- +## RECOMMENDATIONS Poop mode (Mode 1, or Mode 2 with poop enabled) is recommended for the 0.25 nozzle and for PETG with any nozzle. @@ -174,21 +176,12 @@ nozzle volume as described in the install instructions. Trash skip height is best set to 1 for PETG, and 0.6 for any other material. ---== CONFIGURATION VARIABLES ==-- - -These can be set via SAVE_VARIABLES VARIABLE=[name] VALUE=[value] - -nopoop_trash_skip_height | When in nopoop mode, the printer will still go to the trash when the print is below - | this height, during color changes. 0 to disable, >220 for always. -------------------------------------+--------------------------------------------------------------------------------------- -use_trash_on_print | (Existing zMod variable). Existing behavior is maintained for values of 0 and 1; new - | behavior is unlocked by setting this to 2. -------------------------------------+--------------------------------------------------------------------------------------- -validate_print_settings_auto_change | Determines what will happen if _VALIDATE_PRINT_SETTINGS is called with parameters that - | do not match the current printer configuration. (This macro is never called by zMod or - | nopoop itself; it exists for the benefit of custom slicer gcode. The provided print - | profiles do use it.) - | -1 : Emit a warning to the console, but continue with the print - | 0 : Abort the print and show an error - | 1 : Change the settings to the correct ones (cannot change display_on/off, will - | abort the print and show an error if that mismatches) \ No newline at end of file +## CONFIGURATION VARIABLES + +These can be set via `SAVE_VARIABLES VARIABLE=[name] VALUE=[value]` + +| **Variable** | **Definition** | +|---|---| +| `nopoop_trash_skip_height` | When in nopoop mode, the printer will still go to the trash when the print is below this height during color changes. 0 to disable, >220 for always. | +| `use_trash_on_print` | (Existing zMod variable). Existing behavior is maintained for values of 0 and 1; new behavior is unlocked by setting this to 2. | +| `validate_print_settings_auto_change` | Determines what will happen if `_VALIDATE_PRINT_SETTINGS` is called with parameters that do not match the current printer configuration. (This macro is never called by zMod or nopoop itself; it exists for the benefit of custom slicer gcode. The provided print profiles do use it.)

**Values:**
- **-1**: Emit a warning to the console, but continue with the print
- **0**: Abort the print and show an error
- **1**: Change the settings to the correct ones (cannot change display_on/off; will abort the print and show an error if that mismatches) |