SteinWipe Motion Control - BBS P1 User Manual
[{"type":"paragraph","children":[{"t":"text","v":"SWMC Release: BBS_P1_SWMC_Machine_Preset_Feb.15.2.2025.3mf","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Developed On: Bambu Studio V.01.09.07.50","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Shipped Date: Apr.30.2025","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"Welcome","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This manual covers the BBS_P1_SWMC_Machine_Preset_Feb.15.2.2025 release of SteinWipe Motion Control (SWMC) for the Bambu Lab P1P and P1S running Bambu Studio. This is Core 0 stable on the P1 Series; the final Core 0 release for this platform. Features are controlled by editing {if true} \/ {if false} toggles directly in the gcode.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This release shipped on Apr.30.2025 alongside the BBS_P1_Apr.28.1.2025 Core 1 beta. Users can choose either architecture based on their preference. Core 0 stable keeps the inline SteinSwitch toggle approach and adds polish over the Feb.15.1 beta. Core 1 beta introduces the new SteinSwitch Definition (SSD) architecture where features are keyword-configured in printer notes instead of edited in gcode.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you\u0026#39;re coming from Feb.15.1 beta, this is a drop-in stable successor. Your SteinSwitch configurations transfer directly. You get one new SteinSwitch ([[ams_detour]]), upgraded arc wipe motion, a redesigned Template Custom G-code block with spiral lift, and fixes for issues reported during the beta.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you\u0026#39;re new to SWMC entirely, consider Core 1 beta instead; it has more features and a cleaner configuration model. This release is the recommended path for users who specifically prefer Core 0 architecture.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"1. What\u0026#39;s in this release","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"1.1 The big picture","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 0 is the original SWMC architecture. Features are enabled and disabled by editing {if true} or {if false} lines in the gcode directly. This release is the final Core 0 version for the P1 Series on Bambu Studio; subsequent development moved to the Core 1 SSD architecture.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This release ships as a single .3mf file that opens directly in Bambu Studio and installs as a printer preset. Once installed, you configure features by editing the gcode blocks tagged with SteinSwitch comments.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"1.2 What\u0026#39;s new in Feb.15.2 stable","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"New SteinSwitch: [[ams_detour]] routes the toolhead to the SteinWipe position before AMS cycles. Optional travel path modification for users who want a pre-AMS wipe.","b":false,"i":false}]},{"children":[{"t":"text","v":"Arc wipe pattern upgrade. Wipe scrubbing switched from straight-line G0 moves to arc G2\/G3 motion with counter-clockwise and clockwise passes. Produces cleaner scrubbing action and reduces visible wipe marks.","b":false,"i":false}]},{"children":[{"t":"text","v":"Redesigned Template Custom G-code block. Now includes its own spiral lift off the part and travel to the wiper; previously these were expected to be handled elsewhere. Ready to use without additional setup.","b":false,"i":false}]},{"children":[{"t":"text","v":"Fixed: slicer compatibility errors in newer Bambu Studio versions (reported during Feb.15.1 beta)","b":false,"i":false}]},{"children":[{"t":"text","v":"Fixed: nozzle-too-hot issue when first layer starts on smooth plates","b":false,"i":false}]},{"children":[{"t":"text","v":"Fixed: motor slip reported after manual filament change","b":false,"i":false}]},{"children":[{"t":"text","v":"18 total SteinSwitches (one more than Feb.15.1 beta)","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"1.3 What\u0026#39;s the same as Feb.15.1 beta","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All 17 SteinSwitches from the Feb.15.1 beta are preserved with identical names and behaviors. DABL support via [[use_DABL]] SteinSwitch remains for P1 Series firmware 01.06.01.02 or later. Core 0 inline {if true} \/ {if false} toggle mechanism remains the same. Pause routine, chute tapping, mech test coordination, and PA calibration logic carry forward unchanged.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"2. Before you install","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"2.1 Requirements","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Bambu Lab P1P or P1S printer","b":false,"i":false}]},{"children":[{"t":"text","v":"Bambu Studio version shown on this release\u0026#39;s card","b":false,"i":false}]},{"children":[{"t":"text","v":"The .3mf file linked from the release page","b":false,"i":false}]},{"children":[{"t":"text","v":"A SteinWipe V1 wiper mount installed on your P1 Series","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"The wipe features in this release require a SteinWipe V1 mount. Users without a mount installed can still use the chute tapping, mech test coordination, and DABL features, but the wipe-related SteinSwitches will not produce useful results.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"2.2 Install the wiper first, then calibrate","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If your SteinWipe wiper mount is not yet installed, install it before running any SWMC gcode. Wiper entry XY error greater than 0.5mm can tear the wiper pad on the very first wipe cycle, so mount alignment matters.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"After the mount is installed, run the calibration gcode from the release resources to measure your mount\u0026#39;s XY offsets. Those values get entered into the Template Custom G-code section of your printer preset once and stay put across updates.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Wiper mount reference","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"wiper_mount_installed | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SteinWipe V1 wiper mount installed on the rear panel of a Bambu Lab P1 Series. Mount bolted with M3 hardware through the backing plate - no tape.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"2.3 Skip calibration if","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"You ran calibration on this same wiper mount for a previous SWMC release and have not moved, unbolted, or replaced it.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"3. Installing the preset","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"These steps apply to the Bambu Studio version listed on this release\u0026#39;s card.","b":false,"i":false}]},{"type":"list","listType":"ordered","items":[{"children":[{"t":"text","v":"Download the .3mf file from the release resources on the release page.","b":false,"i":false}]},{"children":[{"t":"text","v":"Open Bambu Studio.","b":false,"i":false}]},{"children":[{"t":"text","v":"Import the BBS_P1_SWMC_Machine_Preset_Feb.15.2.2025.3mf file into Bambu Studio.","b":false,"i":false}]},{"children":[{"t":"text","v":"If prompted, choose \u0026quot;Open as Project.\u0026quot;","b":false,"i":false}]},{"children":[{"t":"text","v":"Open your printer profile settings.","b":false,"i":false}]},{"children":[{"t":"text","v":"Save this profile as a new preset so updates do not overwrite your customizations.","b":false,"i":false}]},{"children":[{"t":"text","v":"Name the new preset anything you like; something like \u0026quot;P1 SWMC Feb.15.2 BBS\u0026quot; works well.","b":false,"i":false}]},{"children":[{"t":"text","v":"Select your new preset from the printer dropdown.","b":false,"i":false}]},{"children":[{"t":"text","v":"Open the Machine G-code tab on your preset to find the SteinSwitch toggles. Configure as desired (see Section 4), then save.","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"% BBS import step","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"install_step_1_import | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Importing the .3mf file into Bambu Studio. Use the standard file import option.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Save as preset in BBS","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"install_step_2_preset | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Save your imported profile as a new preset in Bambu Studio. Naming it with the core date makes updates easier later.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"4. How SteinSwitches work","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"4.1 The mechanism","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A SteinSwitch is a labeled {if true} \/ {if false} block in the gcode. Above each block is a comment explaining the feature and how to configure it. To enable a feature, set the block to {if true}. To disable it, set to {if false}.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Example from this release:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; SteinSwitch example","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";1 SteinSwitch ams_detour - sets tool path to chute on AMS","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;true\u0026quot; for a detour to steinwipe before ams","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;false\u0026quot; to skip pre-wipe","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"[ams detour gcode]","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{endif}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Changing {if true} to {if false} disables that feature entirely. The comment immediately above the block tells you what the feature does and which SteinSwitch number it corresponds to.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"4.2 Where to find SteinSwitches","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"In Bambu Studio, open your printer preset\u0026#39;s settings and go to the Machine G-code tab. SteinSwitches appear inline within the Machine Start G-code, Machine End G-code, Change Filament G-code, Pause G-code, and Layer Change G-code sections. Each is preceded by a comment block explaining its purpose.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Where to find SteinSwitches","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"bbs_machine_gcode_tab_location | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Machine G-code tab in Bambu Studio. SteinSwitches appear inline within each gcode section as commented {if true} \/ {if false} blocks.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"4.3 Default configuration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All SteinSwitches ship in a sensible default state. You can use the preset as-shipped without changing any toggles. See Section 5 for the list of features and their defaults.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"5. Available SteinSwitches","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This release includes 18 SteinSwitches. Sections 5.1 through 5.4 group them by gcode section.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.1 Start G-code SteinSwitches","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Routes the toolhead to the SteinWipe position before AMS cycles for a pre-AMS wipe. New in Feb.15.2. Default: OFF.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; AMS_DETOUR","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";1 SteinSwitch ams_detour - sets tool path to chute on AMS","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;true\u0026quot; for a detour to steinwipe before ams","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;false\u0026quot; to skip pre-wipe","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if false}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Removes stringing from the last print by wiping the nozzle before the Z-axis homes. Default: ON. Recommended.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; WIPE_BEFORE_FIRST_Z_TOUCH","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";2 SteinSwitch wipe_before_first_z_touch - removes string from last print","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;true\u0026quot; to wipe the nozzle before homing the z on startup","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;false\u0026quot; to skip","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pauses the printer at startup so you can manually inspect the nozzle before printing starts. Default: OFF. Enable for critical prints or after a nozzle change.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; USER_NOZZLE_INSPECTION","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";3 SteinSwitch user_nozzle_inspection","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if false}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Scrapes the nozzle against the steel tab before the startup priming purge. May help with a cleaner purge. Default: ON on textured PEI plate, skipped on smooth plates.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; SCRUB_NOZZLE_BEFORE_FIRST_PURGE","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";5 SteinSwitch scrub_nozzle_before_first_purge - may help with a cleaner purge","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Handles residual filament not pulled back during the previous print\u0026#39;s end. Prevents filament bits sticking to the side of the nozzle on the wipe. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; PURGE_FOR_UNRETRACTED_FILAMENT","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";6 SteinSwitch purge_for_unretracted_filament - prevents filament bits sticking to side of nozzle on swipe","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a second cleaning pass immediately before the auto bed leveling probe for cleaner ABL readings. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; SECONDARY_NOZZLE_CLEAN_BEFORE_ABL","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";7 SteinSwitch secondary_nozzle_clean_before_ABL","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Adds a second nozzle scrub on the steel tab before the SteinWipe (clean tip to probe for bed level). Default: OFF.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; PERFORM_SECONDARY_NOZZLE_SCRUB_BEFORE_STEINWIPE","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";8 SteinSwitch perform_secondary_nozzle_scrub_before_steinwipe (clean tip to probe for bed level)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if false}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Taps the chute at startup to knock down any old purge before starting the print. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; CHUTE_TAPPING","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";8 SteinSwitch chute_tapping - knock down any purge before starting a print","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Limits the mech vibration test to run only when \u0026quot;bed leveling\u0026quot; is checked in the slicer. Helps skip redundant mech tests on frequent prints. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; MECH_TEST_ONLY_WITH_BED_CALI","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";10 SteinSwitch mech_test_only_with_bed_cali","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;true\u0026quot; to limit vibration test to run only if \u0026quot;bed leveling\u0026quot; checked in slicer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs the mech vibration test at the center of the printed part rather than a fixed bed location. May help with improved surface finish for off-center parts. Default: OFF.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; MECH_TEST_ON_PART_CENTER","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";11 SteinSwitch mech_test_on_part_center (may help with improved surface finish for off center parts)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if false}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Enables Dynamic Auto Bed Leveling. Only probes the bed area where the part is located, even if \u0026quot;bed leveling\u0026quot; is unchecked. P1 Series only; requires firmware 01.06.01.02 or later. Not available for X1C. Default: OFF.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; USE_DABL","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";12 SteinSwitch use_DABL only works with firmware 01.06.01.02 P1 Series - not available for X1","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;true\u0026quot; to only probe bed where the part is located even if \u0026quot;bed leveling\u0026quot; unchecked in slicer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if false}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Uses an improved PA test line placement for more accurate PA calibration. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; USE_TRUE_PA_TEST_LINE","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";13 SteinSwitch use_true_PA_test_line","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Adds a safety check to verify the PA line position before extruding. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; SAFETY_CHECK_PA_LINE_POSITION","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; SteinSwitch safety_check_pa_line_position","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Optimizes the travel path to the first layer to reduce stringing during startup transitions. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; NO_STRINGS_TO_FIRST_LAYER","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";15 SteinSwitch no_strings_to_first_layer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.2 Change Filament G-code SteinSwitches","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a quick wipe cycle before tool change during AMS cycles for a cleaner material transition. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; QUICK_WIPE_BEFORE_TOOL_CHANGE","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; SteinSwitch quick_wipe_before_tool_change","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Taps the chute during AMS cycles to knock down purge buildup between material changes. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; CHUTE_TAPPING (Change Filament)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; SteinSwitch chute_tapping","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle when returning to print after the AMS tool change completes. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; RETURN_TO_PRINT_WIPE_CYCLE (Change Filament)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; SteinSwitch return_to_print_wipe_cycle","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.3 Layer Change G-code SteinSwitches","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle at layer transitions. Off by default; useful for longer prints or materials prone to cooked-on residue. Default: OFF.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; RETURN_TO_PRINT_WIPE_CYCLE (Layer Change)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; SteinSwitch return_to_print_wipe_cycle","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if false}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.4 Pause G-code SteinSwitches","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle after resuming from a pause to clear any ooze that built up during the pause. Default: ON.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; USE_STEINWIPE_AFTER_PAUSE","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";+++++++++++++++++++++++++++++","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; SteinSwitch use_steinwipe_after_pause","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"6. Wiper offset calibration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This section only applies if you have the SteinWipe V1 wiper mount installed.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.1 Why calibrate","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The wiper sits at a fixed position in the slicer\u0026#39;s coordinate space. Small variations in how your mount was drilled or how the mount bracket sits determine whether the nozzle enters the wiper pad cleanly or off-center. Error greater than 0.5mm can tear the wiper pad on the first wipe cycle.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.2 The V3 calibration workflow","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The current approach uses a single .3mf file that walks the toolhead through all 31 offset positions in sequence. The printer\u0026#39;s progress bar flashes different percentages at each position. You watch the nozzle as it moves, and when alignment looks correct, you note the progress bar value. The Offset Chart (embedded below) converts that value to an offset number.","b":false,"i":false}]},{"type":"list","listType":"ordered","items":[{"children":[{"t":"text","v":"Open SteinWipe_XY_Offset_Cali.3mf in Bambu Studio.","b":false,"i":false}]},{"children":[{"t":"text","v":"Enable the calibration routine as instructed in the .3mf notes.","b":false,"i":false}]},{"children":[{"t":"text","v":"Slice and send to the printer.","b":false,"i":false}]},{"children":[{"t":"text","v":"Watch the nozzle as the toolhead cycles through positions.","b":false,"i":false}]},{"children":[{"t":"text","v":"When the nozzle aligns correctly with the wiper, note the progress bar percentage on the display.","b":false,"i":false}]},{"children":[{"t":"text","v":"Look up that percentage on the Offset Chart (below) to get the offset value.","b":false,"i":false}]},{"children":[{"t":"text","v":"Repeat for the other axis if needed.","b":false,"i":false}]},{"children":[{"t":"text","v":"Enter the X and Y offset values into the Template Custom G-code section of your printer preset on the G0 X0 Y0 line, replacing the zeros with your measured values.","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"% Correct Y axis alignment","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"cali_y_axis_aligned | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The nozzle correctly aligned on the Y axis during V3 calibration.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Correct X axis alignment","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"cali_x_axis_aligned | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The nozzle correctly aligned on the X axis during V3 calibration.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Calibration progress bar","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"calibration_progress_bar | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The printer progress bar signals the current offset position during V3 calibration.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% V3 Offset Chart","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"offset_chart_v3 | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Convert the progress bar percentage to your offset value using this chart.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Where to enter your offsets","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"template_custom_gcode_location | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Template Custom G-code section of your printer preset. Replace the zeros on the G0 X0 Y0 line with your measured offset values.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.3 When to recalibrate","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"After installing a new wiper mount","b":false,"i":false}]},{"children":[{"t":"text","v":"After replacing the wiper pad","b":false,"i":false}]},{"children":[{"t":"text","v":"If you unbolt and re-mount the wiper AND the mount holes were drilled oversized","b":false,"i":false}]}]},{"type":"heading","level":2,"children":[{"t":"text","v":"7. Upgrading from Feb.15.1 beta","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Your existing SteinSwitch configurations transfer directly to this stable release; all 17 Feb.15.1 SteinSwitches are preserved with identical names and behaviors. The one new SteinSwitch ([[ams_detour]]) ships disabled by default, so your current workflow continues unchanged after upgrade.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you customized the Template Custom G-code section in your Feb.15.1 preset (for example, entering wiper offset values on the G0 X0 Y0 line), note those values before importing Feb.15.2 and re-enter them after import. The Template Custom block has been restructured between the two versions.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"8. Known issues","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"[[use_DABL]] requires firmware 01.06.01.02 or later. On older firmware, the SteinSwitch silently does nothing instead of falling back to standard ABL. Verify your firmware version before enabling.","b":false,"i":false}]},{"children":[{"t":"text","v":"Multiple SteinSwitches enabled simultaneously with conflicting behaviors may produce unexpected results. When in doubt, enable one feature at a time and test.","b":false,"i":false}]}]},{"type":"heading","level":2,"children":[{"t":"text","v":"9. Reporting bugs","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Issues with this release go to ","b":false,"i":false},{"t":"link","v":"the Leckiestein Discord bug reporting channel for Core Feb.15.2","url":"https:\/\/discord.com\/channels\/1327182397673832448\/1367314880859738204","target":""},{"t":"text","v":". Include a video of the issue, a 3MF diagnostic file (see Discord #faq for how to generate one), and the specific SteinSwitch states you had configured when the issue occurred.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Discord bug channel example","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"discord_bug_channel_example | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Leckiestein Discord bug reporting channels. Each SWMC core family has its own channel; post your bug report in the channel matching the core you are running.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"10. What\u0026#39;s next","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This Feb.15.2 stable is the final Core 0 release for the P1 Series on Bambu Studio. Subsequent development moved to:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"BBS_P1_Apr.28.1.2025 (Core 1 beta) - introduces the SSD architecture with keyword-based configuration in printer notes. 43 SSDs across all gcode sections. Recommended for users ready to move to the new architecture.","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"Users can remain on this Core 0 stable release indefinitely; it is a complete and stable product. The Core 1 migration is optional.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"11. Licence and liability","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWMC modifies printer motion and startup behavior via slicer-level G-code. Use of this profile is at the user\u0026#39;s own risk. The user\/operator assumes full responsibility for machine operation, monitoring, and all outcomes. Leckiestein shall not be held liable for damage, injury, or losses resulting from use, misuse, or modification of this profile preset.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"12. ","b":false,"i":false},{"t":"link","v":"Terms and conditions","url":"https:\/\/leckiestein.com\/policies\/terms-of-service","target":""},{"t":"text","v":"","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"By purchasing or downloading this release, you agree to the Leckiestein Terms and Conditions for Digital Products, effective January 1, 2025.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.1 Usage rights","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Your purchase grants you a ","b":false,"i":false},{"t":"text","v":"personal, non-transferable, non-exclusive license","b":true,"i":false},{"t":"text","v":" to use this release. You may download and use the files for your personal projects, and modify the gcode for your own use.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.2 Not allowed","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Reselling, redistributing, or sharing the .3mf or its embedded gcode","b":false,"i":false}]},{"children":[{"t":"text","v":"Uploading the files to public or private repositories","b":false,"i":false}]},{"children":[{"t":"text","v":"Selling physical items produced from the files without a Tier 3+ commercial license","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.3 Commercial use","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you wish to use this release for commercial purposes, you must subscribe to the Pro Maker License Tier (Tier 3+ on Patreon) or purchase a separate commercial license. Any unauthorized commercial use is a violation of these terms.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.4 Non-refundable","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All digital product sales are final and non-refundable once the files have been downloaded. If you experience technical issues or believe a product has an error, contact Leckiestein via direct messages for assistance (not in comment threads).","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.5 Copyright","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All intellectual property rights to this release remain with Leckiestein. Any infringement of these rights may result in legal action.","b":false,"i":false}]}]
[]