SteinWipe Motion Control Pro - ORCA P1 User Manual
[{"type":"heading","level":2,"children":[{"t":"text","v":"WARNING","b":true,"i":false},{"t":"text","v":"\n","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"This is not a full release and is focused on the Pro Mounts at this time. Pathways have been built for:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"pro wiper mount solo","b":false,"i":false}]},{"children":[{"t":"text","v":"chute tab mount + pro wipe mount","b":false,"i":false}]},{"children":[{"t":"text","v":"chute tab mount + v1 mount (2024 - 2025 mount)","b":false,"i":false}]}]},{"type":"heading","level":3,"children":[{"t":"text","v":"This release ONLY uses continuous_movement_purge - Other modes will come","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"This was developed On Orca Slicer 2.3.1 and has not been tested on the latest Orca release","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SteinWipe Motion Control Pro Release: ORCA_P1_SWMC_PRO_Machine_Preset_Apr.28.1.2026.3mf","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Developed On: Orca Slicer V.2.3.1","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Shipped Date: May.3.2026","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"1. Welcome","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This manual covers SteinWipe Motion Control Pro Core 2 for the Bambu Lab P1 Series running Orca Slicer. Core 2 is the largest architectural rewrite of SWMC since the project began. It introduces the SteinWipe User Definition (SWUD) layer, a slice-time conflict detection system, external flush tracking that feeds correct numbers to the slicer\u0026#39;s filament stats, and a new family of purge modes including [[continuous_movement_purge]] and the [[steinwipe_rake_cycle]].","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This release is keyword-based, like the Apr.28.1.2025 (Core 1) release before it. You configure features by adding keywords to your printer notes field; the slicer reads them at slice time and writes the matching code paths into the gcode it sends to your printer.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you\u0026#39;re new to SWMC, read Section 5 first; it explains how SteinSwitch Definitions (SSDs) work.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you\u0026#39;re upgrading from Core 1, read Section 2 to see what changed; most of your existing printer notes will work as-is, with a few keyword renames noted in Section 6.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"2. What\u0026#39;s in this release","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"2.1 The big picture","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 2 keeps everything that worked in Core 1 and rebuilds the foundation underneath. The user-facing surface is similar; you still configure SWMC by adding keywords to printer notes. Underneath, the start gcode now resolves those keywords into boolean variables once at the top of the file and downstream code reads the variable directly. This reduces the file size and the parse-time cost; both have become real concerns as the feature set has grown.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The other big additions are the conflict-detection warnings, which catch many configuration mistakes at slice time before they reach your printer, and the external flush tracking, which makes the slicer\u0026#39;s filament total accurate for the first time.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"2.2 What\u0026#39;s new since Apr.28.1.2025 (Core 1)","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"The SWUD (SteinWipe User Definition) architecture; numeric tunables now live in a User Config block at the top of the start gcode where you can override them by uncommenting a line","b":false,"i":false}]},{"children":[{"t":"text","v":"Slice-time conflict detection that blocks slicing with a clear error message when conflicting SSDs are set together","b":false,"i":false}]},{"children":[{"t":"text","v":"External flush tracking that adds startup, pause, and AMS cycle filament use to the slicer\u0026#39;s stats","b":false,"i":false}]},{"children":[{"t":"text","v":"The [[continuous_movement_purge]] purge mode","b":false,"i":false}]},{"children":[{"t":"text","v":"The [[steinwipe_rake_cycle]] wipe pattern","b":false,"i":false}]},{"children":[{"t":"text","v":"The [[prime_nozzle_after_ams]] feature for primetowerless printing (Steinwipe Pro hardware required)","b":false,"i":false}]},{"children":[{"t":"text","v":"Anti-ooze protab cooling for AMS cycles via [[heat_nozzle_on_tab_before_flush]]","b":false,"i":false}]},{"children":[{"t":"text","v":"Four progressive [[steinretraction_low]] \/ [[steinretraction_med]] \/ [[steinretraction_max]] \/ [[steinretraction_revo]] modes","b":false,"i":false}]},{"children":[{"t":"text","v":"Purge flow rate adjustment SSDs at 25%, 50%, 75%, and 125% of nozzle volumetric speed","b":false,"i":false}]},{"children":[{"t":"text","v":"Bambu Lab PETG-HF flow correction via [[bambu_petg_flow_comp]]","b":false,"i":false}]},{"children":[{"t":"text","v":"Per-bed-plate Z offset support","b":false,"i":false}]},{"children":[{"t":"text","v":"Whitespace-tolerant SSD regex (no more silent failures from stray spaces in printer notes)","b":false,"i":false}]}]},{"type":"heading","level":3,"children":[{"t":"text","v":"2.3 What\u0026#39;s NOT in this release","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"These items were considered in scope but cut to ship Core 2 on time. They are scheduled for follow-up Core 2.X drops.","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"[[sidestepping_purge]]: the SSD parses correctly and the conflict checks recognize it, but the change filament gcode purge cycles are wired only for [[continuous_movement_purge]] and [[static_purge]]. Use one of those two for now","b":false,"i":false}]},{"children":[{"t":"text","v":"[[steinwipe_v1_installed]]: the wipe routines for the v1 hardware are placeholders. Steinwipe Pro hardware is the supported wiper for this release","b":false,"i":false}]},{"children":[{"t":"text","v":"Bed-tab-only docking: users without a [[chute_protab_installed]] or [[steinwipe_pro_installed]] will hit a slice-time error telling them to add one of the two; the bed spring tab path exists in code but has unresolved nozzle-stays-pressed behavior","b":false,"i":false}]},{"children":[{"t":"text","v":"PLA supports for PETG: the cross-flush handling needs more development","b":false,"i":false}]},{"children":[{"t":"text","v":"New Core 2 versions of the pause, layer change, end, and template custom gcode files; these carry forward from the Apr.28.1.2025 (Core 1) release","b":false,"i":false}]}]},{"type":"heading","level":2,"children":[{"t":"text","v":"3. Before you install","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"3.1 Hardware requirements","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"A Bambu Lab P1 Series printer (P1S or P1P)","b":false,"i":false}]},{"children":[{"t":"text","v":"One of the following wiper hardware setups:\n\nSteinWipe Pro with chute protab installed\nSteinWipe Pro with chute protab NOT installed (Pro alone is sufficient)\nChute protab with SteinWipe v1 wiper\n\n","b":false,"i":false}]},{"children":[{"t":"text","v":"AMS unit (the AMS-related features assume an AMS is connected)","b":false,"i":false}]}]},{"type":"heading","level":3,"children":[{"t":"text","v":"3.2 Software requirements","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Orca Slicer at the version shown on this release\u0026#39;s card","b":false,"i":false}]}]},{"type":"heading","level":3,"children":[{"t":"text","v":"3.3 Calibration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Run the wiper offset calibration (Section 7) before your first wipe cycle on a newly installed mount. XY error greater than 0.5mm can rip the wiper pad on the first wipe.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"4. Installing the preset","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"4.1 Steps","b":false,"i":false}]},{"type":"list","listType":"ordered","items":[{"children":[{"t":"text","v":"Download the .3mf file from this release\u0026#39;s Resources section","b":false,"i":false}]},{"children":[{"t":"text","v":"Open Orca Slicer","b":false,"i":false}]},{"children":[{"t":"text","v":"Click the Add tool in the toolbar and select the downloaded .3mf","b":false,"i":false}]},{"children":[{"t":"text","v":"If prompted, select \u0026quot;Import as project\u0026quot;","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"% Importing the .3mf into Orca Slicer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"add_preset_to_slicer | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Click the Add tool in the Orca Slicer toolbar to begin importing the SWMC Pro .3mf file.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Select the SWMC .3mf for import to Orca Slicer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"open_orca_3mf_preset | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Select the .3mf file from your saved location from your hard drive.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% If prompted, import as a project","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"open_as_orca_project_prompt | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you do not see this prompt, its because you have the preset saved already or you once picked to import geometry only and selected to not be shown this prompt again. You can clear that selection in Orca\u0026#39;s preferences. In 2.3.1 go to the top left window toolbar and click: [[","b":false,"i":false},{"t":"text","v":"OrcaSlicer","b":true,"i":false},{"t":"text","v":" -\u0026gt; Settings -\u0026gt; Clear my choice on the unsaved preset]]","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Saving as a new preset","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"save_as_new_orca_preset | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Use Save As to create a dedicated preset for SWMC Pro. This keeps the SWMC configuration separate from your other presets.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Under the Prepare tab, click Save As on the printer preset and give it a recognizable name (e.g., SWMC Pro Apr.28.1.2026 P1)","b":false,"i":false}]},{"children":[{"t":"text","v":"Open the printer notes field for your new preset","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"% The printer notes location in Orca Slicer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"orca_printer_notes_apr_28_1_2026 | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The printer notes field lives under the printer settings. This is where every SteinSwitch Definition (SSD) goes; one keyword per line.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Paste in your printer notes; see Section 8 for the recommended default configuration","b":false,"i":false}]},{"children":[{"t":"text","v":"Save your preset (the asterisk indicator will clear when the save is complete)","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"Your preset is ready to slice.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"5. How SSDs work","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"5.1 What is a SteinSwitch Definition","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A SteinSwitch Definition (SSD) is a keyword you add to your printer notes field, one per line, to enable a feature in SWMC. The slicer reads your printer notes at slice time and writes the corresponding code paths into the gcode it sends to your printer.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"For example, adding the line dark_mode to your printer notes will keep the toolhead lights and LOGO off during operation (X1C). Removing the line restores normal lighting.","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"SSDs are matched as full lines.","b":false,"i":false}]},{"children":[{"t":"text","v":"White space at the start or end of the SSD should be avoided.","b":false,"i":false}]},{"children":[{"t":"text","v":"One SSD per line.","b":false,"i":false}]},{"children":[{"t":"text","v":"Unused SSDs can be preset, but must include a semi-colon before or after the SSD [[;dark_mode]]","b":false,"i":false}]}]},{"type":"heading","level":3,"children":[{"t":"text","v":"5.2 What is a SWUD","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A SteinWipe User Definition (SWUD) is a numeric tunable in the User Config block at the top of the start gcode. Where SSDs are on\/off keywords in printer notes, SWUDs are values like temperatures, speeds, or geometry parameters that have a sensible default but can be overridden by the user.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWUDs ship pre-configured based on hundreds of hours of testing and likely do not need to be changed, but if there is a situation that calls for it, changing SWUD values is very easy and not Gcode knowledge is needed.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"To edit a SWUD value, open the start gcode found in the printer preset, find the User Config section at the top, and change the value as needed:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Example - overriding rapid_travel","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";global rapid_travel = 0 \u0026lt;- before edit (slicer default used for travel speed)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";global rapid_travel = 500 \u0026lt;- after edit (active, override applied)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Most users will never need to touch SWUDs. They exist for advanced tuning when the defaults don\u0026#39;t fit a specific machine or workflow.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"5.3 Whitespace tolerance","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The new SSD regex tolerates leading and trailing whitespace on each line, so accidentally indented keywords may still work. Some old regex code still exists in this release so it is best to avoid leaving white space on SSDs.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"5.4 The agree gate","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The very first SSD every user adds is [[agree]]. This is a liability acknowledgment gate; without it, the slicer blocks slicing with an error message reminding you that operating SWMC is your responsibility. Once you add agree to printer notes, the gate clears.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"5.5 Conflict detection","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Some SSDs are mutually exclusive. For example, you can only choose one wiper mount type at a time; you cannot run [[steinwipe_pro_installed]] and [[steinwipe_v1_installed]] simultaneously otherwise the slicer would generate Gcode that could cause collisions.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Error generated by slicing with two wiper types installed ","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"orca_slicer_error_generated_by_swmc | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 2 catches these conflicts at slice time and blocks slicing with a clear error message naming the conflict. The full list of detected conflicts is documented in Section 6 alongside each affected SSD.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"6. SSD reference","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This section lists every SSD that this release recognizes. Click the keyword button in any entry to open its dedicated definition page; the definition page has the full description, version history, and a Compare block showing how the SSD has evolved across releases.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.1 Required setup","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Liability gate\nagree\nLiability acknowledgment gate; required for slicing. By including this in your printer notes, you confirm that you understand operating SWMC is your responsibility and accept the terms in Section 14.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.2 Hardware presence","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Add one or both, depending on your hardware. You cannot use both [[steinwipe_v1_installed]] and [[steinwipe_pro_installed]] simultaneously; the slicer blocks slicing if both are set. You also cannot slice without at least one of [[chute_protab_installed]] or [[steinwipe_pro_installed]] in this release; the standard bed-tab-only docking is not yet supported (nozzle uses bedplate). This release\u0026#39;s current focus is on Pro integration. To use an older wiper configuration, use the latest Orca Slicer for P1 SWMC Core 1.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Acceptable hardware configs for this release (A - Default)","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Hardware presence","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"=======================\n;chute_protab_installed\nsteinwipe_pro_installed\n;steinwipe_v1_installed","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Acceptable hardware configs for this release (B - Best)","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Hardware presence","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"=======================\nchute_protab_installed\nsteinwipe_pro_installed\n;steinwipe_v1_installed","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Acceptable hardware configs for this release (C - Min)","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Hardware presence","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"=======================\nchute_protab_installed\n;steinwipe_pro_installed\nsteinwipe_v1_installed","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All combinations will be available in a later release after the hardware and code implementation has been proven with user feedback.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Chute ProTab\nchute_protab_installed\nDeclares that the chute-mounted ProTab hardware is installed.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Pro wiper hardware\nsteinwipe_pro_installed\nDeclares that the SteinWipe Pro back-wall ProTab and wiper pad are installed.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; V1 wiper (placeholder)\nsteinwipe_v1_installed\nPlaceholder for v1 wiper hardware. The wipe routines for v1 are not yet implemented in this release. Steinwipe Pro hardware is the supported wiper for now.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.3 Hardware behavior","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Send-to-SD fix\nshift_ams_mapping\nOffsets AMS tool numbers by +1 after the first toolchange. Workaround for an Orca Slicer bug where the \u0026quot;Send\u0026quot; to SD card option offsets filament slot assignments. Enable if you slice via Send-to-SD.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Soft motor enable\nsoft_start_steppers\nApplies a soft-start motor enable (M17 X0.1 Y0.1 Z0.1) before the full motor enable command. Reduces stepper jolt on startup.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Fan cover alarm off\nignore_fan_cover_alarm\nSuppresses the X1 fan cover alarm. Credit: Discord user OldSalty3D.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Lights off\ndark_mode\nKeeps all toolhead lights and the LOGO off during operation.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Purge work light\nuse_purge_work_light\nTurns the toolhead light on during purge for webcam visibility.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Production mode (reserved)\nproduction_mode\nReserved for the production-mode protab flow. Limited functionality in this release; full implementation is scheduled for Core 2.X.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.4 Nozzle cleaning","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; ProTab scrub\nenable_protab_scrubbing\nRuns a protab scrub cycle wherever the design supports it.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Scrub after toolchange\nscrub_protab_after_toolchange\nSpecifically runs the protab scrub cycle after a toolchange before the steinwipe.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Rake after purge\nsteinwipe_rake_after_purge\nRuns the new [[steinwipe_rake_cycle]] wipe after purging. CAUTION: requires perfect X-axis alignment; misalignment can rip the wiper pad. Run offset calibration (Section 7) before relying on this.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Wipe after purge\nsteinwipe_cycle_after_purge\nRuns the standard wipe cycle after purging.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Wipe after flow cali\nsteinwipe_after_flow_cali_scan\nRuns a wipe cycle after the flow calibration scan during startup.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.5 AMS toolpath modes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one. Setting more than one will silently first-match without a warning in this release.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 1 of 3 - ams_steinwipe_detour\nams_steinwipe_detour\nRoutes the AMS toolchange return path through the SteinWipe pad.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 2 of 3 - ams_snake_detour (best)\nams_snake_detour\nRoutes the AMS toolchange return path through a snake travel pattern to help with any nozzle filament tail hanging over the edge of the chute wall.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 3 of 3 - ams_protab_detour\nams_protab_detour\nRoutes the AMS toolchange return path through the chute ProTab.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.6 AMS options","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Anticurling fan\nenable_string_anticurling_fan\nKeeps the part fan running during the AMS cycle to slow ooze and prevent ooze strings from curling up onto the nozzle.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Hot flush\nflush_using_high_temp\nRuns the flush at the filament\u0026#39;s range_high temp instead of the nominal print temp. Faster flushing for stubborn material transitions.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Heat on tab before flush\nheat_nozzle_on_tab_before_flush\nDocks the nozzle on the protab and heats it before starting the flush sequence. Pairs with [[chute_protab_installed]]. Adds time but greatly improves reliability for unsupervised overnight prints.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Prime after AMS\nprime_nozzle_after_ams\nPushes filament into the nozzle with the tip blocked against the protab to remove air pockets and build pressure. Required for primetowerless printing. Requires Steinwipe Pro hardware.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Cool before toolchange\ncool_nozzle_before_toolchange\nCools the nozzle before parking on the protab during a toolchange. Reduces ooze during the AMS pull-back phase.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.7 Purge modes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one. The slicer blocks slicing if more than one is set.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 1 of 3 - continuous_movement_purge (best)\ncontinuous_movement_purge\nKeeps the toolhead in continuous motion through the purge sequence rather than stepping between static positions. Reduces ooze stringing in the chute.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 2 of 3 - static_purge\nstatic_purge\nNot yet avail. Standard static purge with toolhead held in position.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 3 of 3 - sidestepping_purge\nsidestepping_purge\nNot yet avail. This is the original sidestepping method with a single walk from left to right while purging.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.8 Steinretraction modes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one. Setting more than one will silently first-match without a warning in this release.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 1 of 4 - steinretraction_low\nsteinretraction_low\n6mm long retraction.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 2 of 4 - steinretraction_med\nsteinretraction_med\n12mm long retraction.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 3 of 4 - steinretraction_max (best)\nsteinretraction_max\nBest for filament savings with color change prints and PETG. 18mm long retraction.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 4 of 4 - steinretraction_revo\nsteinretraction_revo\n21mm long retraction; tuned for Panda Revo nozzles.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.9 Chute anti-clog","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Loosen purge\nloosen_purge\nShakes the toolhead to break the purge free from the chute walls.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Stretch with shake\nstretch_purge_with_toolhead_shake\nStretches the purge with a shake motion instead of a simple Y pull.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.10 Detach purge modes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one. The slicer blocks slicing if more than one is set or if none is set.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 1 of 3 - drop_and_stretch_purge_to_detach\ndrop_and_stretch_purge_to_detach\nDrops, stretches with shake or pull, retracts.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 2 of 3 - drop_and_pinch_purge_to_detach\ndrop_and_pinch_purge_to_detach\nDrops, pinches against the chute wall, rips.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 3 of 3 - standard_rip_purge_to_detach\nstandard_rip_purge_to_detach\nTraditional rip via the chute opening.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.11 Chute tapping","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Chute tapping is now integrated in AMS travel paths. Upon user feedback with chute clogging, this may stay as is or the Core 1 method of \u0026quot;tap tap tap\u0026quot; just before returning to print may be brought back. The new way is needed for primetowerless color printing.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one setting. Setting more than one will silently first-match without a warning in this release.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 1 of 3 - chute_tapping_soft\nchute_tapping_soft\nLow-force chute tap.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 2 of 3 - chute_tapping_med\nchute_tapping_med\nMedium-force chute tap.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 3 of 3 - chute_tapping_hard\nchute_tapping_hard\nHigh-force chute tap.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.12 Purge flow rate adjustment","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one if you want to adjust purge flow. Setting more than one will silently first-match.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 1 of 4 - purge_with_25_percent_flow\npurge_with_25_percent_flow\nReduces purge flow to 25% of nozzle volumetric.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 2 of 4 - purge_with_50_percent_flow\npurge_with_50_percent_flow\nReduces purge flow to 50% of nozzle volumetric.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 3 of 4 - purge_with_75_percent_flow\npurge_with_75_percent_flow\nReduces purge flow to 75% of nozzle volumetric.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 4 of 4 - purge_with_125_percent_flow\npurge_with_125_percent_flow\nBoosts purge flow to 125% of nozzle volumetric. HF nozzle only.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.13 Purge bucket pause","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one. Setting more than one will silently first-match.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 1 of 3 - pause_print_for_small_purge_bucket\npause_print_for_small_purge_bucket\nPauses every 50 layers to empty the purge bucket.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 2 of 3 - pause_print_for_med_purge_bucket\npause_print_for_med_purge_bucket\nPauses every 175 layers.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Option 3 of 3 - pause_print_for_large_purge_bucket\npause_print_for_large_purge_bucket\nPauses every 350 layers.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.14 Calibration and slicer behavior","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Skip auto bed level\ndisable_auto_bed_level\nSkips automatic bed leveling.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Skip mech test\ndisable_mech_test\nSkips the mechanism test step.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Link mech test to ABL\nlink_mech_test_to_bed_level\nTies mechanism test execution to ABL trigger.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Mech test on part\nmech_test_on_part_center\nRuns the mechanism test at the part center rather than the bed center.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; DRO display\nforce_dro_display\nWrites diagnostic gcode comments into the slicer preview showing computed values (purge feed, feedrate correction, tool numbers, retraction lengths). This is generally not going to be used for anything more than troubleshooting.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"6.15 Special features","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; PETG-HF flow fix\nbambu_petg_flow_comp\nApplies a flow compensation correction when Bambu Lab PETG-HF is detected with the default filament profile (which has the wrong flow ratio causing under extrusion).\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Shortest post-AMS return\noptimize_post_ams_return_print_travel\nTravels to the slicer\u0026#39;s intended next-print position via the shortest path after AMS return. Careful with this one, it still has a bug. Orca Slicer and Bambu Studio have this in the code but it is never triggered with their implementation. Using the built in slicer correct return to print positions will cause the tool to travel outside the build volume when slicing multi-plate color prints without primetowers.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; First layer travel fix\noptimized_travel_to_first_layer\nThe initial layer uses much slower travel speeds and accelerations which also apply to the first travel into position to start laying down the first extrusion of filament. This causes long travel times when the start of the print is at the back of the bed meaning filament will ooze away during the slow initial travel resulting in a poor initial extrusion. This SSD corrects the first travel path speed and acceleration and resets to the slicer set values after the first extrusion starts.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; AMS anticurling tail\nuse_ams_anticurling_tail\nUses anticurling_tail_length math in steinretraction punchdown.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; HF nozzle declaration\nuse_hf_nozzle\nDeclares that a high-flow nozzle is installed. Required for [[purge_with_125_percent_flow]].\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Divide large purge\ndivide_large_purge\nRuns a rip purge between flush 2 and flush 3 for very large total flushes. This can help with larger purges that can clog the purge chute.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Skip AMS\nskip_ams\nSkips AMS handling entirely. Intended to clean up the slicer travel paths that can include the first ams cycle even if there is not an ams connected to the machine.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;\u0026gt; Leave filament loaded (reserved)\nleave_filament_in_end_print\nNot yet implemented. Skips the material pullback at the end of the print. Leaving filament loaded starts the next print faster and is less wear on the machine.\n\u0026lt;\u0026lt;}}","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"7. Wiper offset calibration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The wiper offset calibration aligns the nozzle\u0026#39;s path through the wipe pad with sub-millimeter precision. Run this whenever you install a new wiper, replace the wiper pad, or move the wiper mount.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"7.1 What you need","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"The XY Offset Calibration .3mf from this release\u0026#39;s Resources section","b":false,"i":false}]},{"children":[{"t":"text","v":"The Offset Chart from this release\u0026#39;s Resources section","b":false,"i":false}]}]},{"type":"heading","level":3,"children":[{"t":"text","v":"7.2 Procedure","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"For more detailed instructions on this process, visit the wiper calibration manual ","b":false,"i":false},{"t":"link","v":"P1\/X1 SteinWipe v.3.0 Wiper Offset Calibration","url":"https:\/\/leckiestein.com\/pages\/project-documentation\/manual-steinwipe-wiper-offsets-and-general-calibration","target":"_blank"},{"t":"text","v":"","b":false,"i":false}]},{"type":"list","listType":"ordered","items":[{"children":[{"t":"text","v":"Load the XY Offset Calibration .3mf into Orca Slicer","b":false,"i":false}]},{"children":[{"t":"text","v":"Slice and send the calibration print","b":false,"i":false}]},{"children":[{"t":"text","v":"Watch the printer; the progress bar updates as the toolhead steps through offset values","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"% Y axis aligned","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"cali_y_axis_aligned | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"When the nozzle is correctly aligned on the Y axis, it sits centered on the pad.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% X axis aligned","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"cali_x_axis_aligned | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"When the nozzle is correctly aligned on the X axis, it sits centered on the pad.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"list","listType":"ordered","items":[{"children":[{"t":"text","v":"When the nozzle is centered on the pad in each axis, note the progress bar percentage at that moment","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"% 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":"Use the chart to convert the progress bar percentage into the offset value to enter in the slicer.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"list","listType":"ordered","items":[{"children":[{"t":"text","v":"Look up the percentage on the Offset Chart to find the corresponding X and Y offset values","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"% Where to enter the offset","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"template_custom_gcode_location_apr_28_2026 | scale=80 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Open the template_custom_gcode field in your preset and update the steinwipe_xoffset and steinwipe_yoffset lines.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"list","listType":"ordered","items":[{"children":[{"t":"text","v":"Open your preset\u0026#39;s template_custom_gcode field and update the [[steinwipe_xoffset]] and [[steinwipe_yoffset]] values","b":false,"i":false}]},{"children":[{"t":"text","v":"Save the preset","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"Your wiper is now calibrated.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"7.3 Offsets only apply where set","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The offsets entered in template_custom_gcode apply only to wipe cycles run inside machine preset gcode (start, change filament, etc.). If you insert a steinwipe cycle at a specific layer height via the layer slider, you must also update the template_custom_gcode offsets at that point in the print, because the slicer renders the slider-inserted custom gcode separately.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"8. Default configuration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; The recommended printer notes for a standard SteinWipe Pro hardware setup with a chute protab installed:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"### Hardware presence\n=======================\n;chute_protab_installed\nsteinwipe_pro_installed\n;steinwipe_v1_installed \n\n### SteinWipe Nozzle Cleaning Behavior\n======================================\nsteinwipe_rake_after_purge\nsteinwipe_cycle_after_purge\nenable_protab_scrubbing\nscrub_protab_after_toolchange\n\n### Purge modes\n=========================\ncontinuous_movement_purge\n;sidestepping_purge\n;static_purge\n\n### Purge detach modes (must pick only one)\n===========================================\ndrop_and_pinch_purge_to_detach\n;drop_and_stretch_purge_to_detach\n;standard_rip_purge_to_detach\n\n### AMS \/ toolchange behavior\n=============================\nenable_string_anticurling_fan\ncool_nozzle_before_toolchange\nflush_using_high_temp\n;heat_nozzle_on_tab_before_flush\n;optimize_post_ams_return_print_travel\n;shift_ams_mapping\n;use_ams_anticurling_tail\nprime_nozzle_after_ams\n\n### Steinretraction anti-filament jamming\n=========================================\n;steinretraction_low\n;steinretraction_med\nsteinretraction_max\n;steinretraction_revo\n\n### Purge style and flow\n========================\n;loosen_purge\n;stretch_purge_with_toolhead_shake\ndivide_large_purge\n;purge_with_25_percent_flow\n;purge_with_50_percent_flow\n;purge_with_75_percent_flow\n;purge_with_125_percent_flow\n;use_hf_nozzle\n\n### AMS Call Detour selection\n=============================\n;ams_steinwipe_detour\nams_snake_detour\n;ams_protab_detour\n\n### Purge bucket pause\n===================================\n;pause_print_for_small_purge_bucket\n;pause_print_for_med_purge_bucket\n;pause_print_for_large_purge_bucket\n\n### Chute tapping\n===================\n;chute_tapping_soft\nchute_tapping_med\n;chute_tapping_hard\n\n### Cali \/ mech test gating\n===========================\n;disable_auto_bed_level\n;disable_mech_test\nlink_mech_test_to_bed_level\nmech_test_on_part_center\n\n### Special features \/ experimental\n===================================\nbambu_petg_flow_comp\noptimized_travel_to_first_layer\nsoft_start_steppers\n\n\n### Print start \/ end\n============================\n;leave_filament_in_end_print\n;production_mode\n\n### Visibility \/ display\n========================\n;force_dro_display\n;ignore_fan_cover_alarm\n;skip_ams\n\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This configuration enables the headline Core 2 features (anti-ooze AMS, prime after AMS, continuous movement purge, drop and stretch detach) with the protab cleaning routines that protect against long-print clog issues.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"9. Typical configurations","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"9.1 Pro hardware, max-quality printing","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Use the default configuration in Section 8. Add [[bambu_petg_flow_comp]] if you print Bambu Lab PETG-HF.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"9.2 Pro hardware, fast printing","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Start from the default configuration and replace [[heat_nozzle_on_tab_before_flush]] with no entry; this skips the pre-heat-on-tab step and saves several seconds per toolchange. Disable Steinretraction for faster cuts.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"9.3 Chute protab only (no SteinWipe Pro pad)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Not yet implemented. ","b":true,"i":false},{"t":"text","v":"Start from the default configuration and remove [[steinwipe_pro_installed]]. Lost of use for [[steinwipe_cycle_after_purge]] and [[steinwipe_rake_after_purge]] since there\u0026#39;s no pad to wipe on. Also [[prime_nozzle_after_ams]] since it requires SteinWipe Pro hardware.","b":false,"i":false}]},{"type":"heading","level":3,"children":[{"t":"text","v":"9.4 Lights-out overnight printing","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Start from the default configuration and add [[heat_nozzle_on_tab_before_flush]] (this should already be in your defaults) and [[dark_mode]] of the printer is in the room with you. The combination of cooled-nozzle-on-tab during AMS cycles and ooze prevention gives the most reliable unsupervised behavior for color change printing.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"10. Known issues","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Wiper pad damage from bad offset. Always run the offset calibration (Section 7) before your first wipe cycle on a newly installed mount. XY error greater than 0.5mm can rip the wiper pad on the first wipe; this is especially important if you enable [[steinwipe_rake_after_purge]] which has the tightest alignment requirement.","b":false,"i":false}]},{"children":[{"t":"text","v":"Standard bed-tab docking nozzle prep is not supported yet in this release. Users without a [[chute_protab_installed]] or [[steinwipe_pro_installed]] will hit a slice-time error. The path exists in code but has unresolved nozzle-stays-pressed behavior; will be sorted in a Core 2.X drop.","b":false,"i":false}]},{"children":[{"t":"text","v":"[[sidestepping_purge]] is reserved. The SSD parses but does not produce flushing in the change filament gcode. Use [[continuous_movement_purge]] or [[static_purge]] instead.","b":false,"i":false}]},{"children":[{"t":"text","v":"[[steinwipe_v1_installed]] is a placeholder. Wipe routines for v1 hardware are not implemented in this release.","b":false,"i":false}]},{"children":[{"t":"text","v":"Multiple steinretraction, chute_tapping, PA cali, AMS detour, or purge bucket modes set together silently first-match without a warning. Set only one in each category. Conflict warnings for these categories are scheduled for Core 2.X.","b":false,"i":false}]},{"children":[{"t":"text","v":"Pause, layer change, end, and template custom gcode fields are still stock during this beta to proof the new pro hardware and SWMC Pro code. Behavior in those sections matches what users have been running without SWMC.","b":false,"i":false}]},{"children":[{"t":"text","v":"Chute protab mount has a known issue where strings get wedged into the gap between the mount and the chute wall. After several thousand toolchanges this can become a place where new purges hang up. Periodic cleaning of the gap or moving to the upcoming chute protab redesign will resolve this.","b":false,"i":false}]},{"children":[{"t":"text","v":"The start gcode is fast enough that the machine chassis may not have time to fully heat up before printing begins. Expansion during the first layer can throw off precision on by-object printing or very large prints. Preheating the machine before slicing helps. A dedicated wait-before-print SSD is planned.","b":false,"i":false}]},{"children":[{"t":"text","v":"The full SWMC Pro preset is now nearly double the size that the Bambu cloud account-linked preset system permits. Copying the preset between devices via the cloud sync may not work; using the .3mf file directly does.","b":false,"i":false}]}]},{"type":"heading","level":2,"children":[{"t":"text","v":"11. 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 Apr.28","url":"https:\/\/discord.com\/channels\/1327182397673832448\/1367315048309194934","target":""},{"t":"text","v":". Include a video of the issue, a 3MF diagnostic file (see Discord #faq for how to generate one), your full printer notes contents, and the specific SSDs you had enabled 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":"12. What\u0026#39;s next","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 2.X drops will follow this initial release at intervals over the coming weeks and months. Items planned for the next drops include:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"The new Core 2 pause, layer change, end, and template custom gcode files","b":false,"i":false}]},{"children":[{"t":"text","v":"The bed-tab-only docking path completion","b":false,"i":false}]},{"children":[{"t":"text","v":"The full [[sidestepping_purge]] implementation in the change filament gcode","b":false,"i":false}]},{"children":[{"t":"text","v":"The v1 wiper cleaning routines","b":false,"i":false}]},{"children":[{"t":"text","v":"Conflict warnings for multi-mode steinretraction, chute_tapping, PA cali, AMS detour, and purge bucket","b":false,"i":false}]},{"children":[{"t":"text","v":"The dedicated wait-before-print SSD for chassis warm-up","b":false,"i":false}]},{"children":[{"t":"text","v":"SWMC Lite breakouts of popular features for users who want individual SWMC capabilities without the full preset weight","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"The Core 2.X numbering preserves the lineage; you can upgrade from Apr.28.1.2026 to Apr.28.2.2026 etc. without rebuilding your printer notes.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"13. Credits","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Discord community members whose work landed in this release:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"endernerd: cracked multiline regex support, which made the entire SSD system possible","b":false,"i":false}]},{"children":[{"t":"text","v":"schwarts: whitespace-tolerant SSD regex formula","b":false,"i":false}]},{"children":[{"t":"text","v":"OldSalty3D: fan cover alarm suppression code","b":false,"i":false}]},{"children":[{"t":"text","v":"Maunose: first-layer nozzle-touch behavior on textured PEI plates","b":false,"i":false}]}]},{"type":"heading","level":2,"children":[{"t":"text","v":"14. ","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":3,"children":[{"t":"text","v":"14.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":3,"children":[{"t":"text","v":"14.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":3,"children":[{"t":"text","v":"14.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":3,"children":[{"t":"text","v":"14.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":3,"children":[{"t":"text","v":"14.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}]}]
[{"base":"offset_chart_v3","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/offset_chart_v3.png?v=1776879866\u0026width=2400","width":800,"height":926},{"base":"cali_y_axis_aligned","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/cali_y_axis_aligned.jpg?v=1777948631\u0026width=2400","width":512,"height":512},{"base":"swmcl_pause_screen_touchscreen","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/swmcl_pause_screen_touchscreen.png?v=1776882713\u0026width=2400","width":1240,"height":892},{"base":"discord_bug_channel_example","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/discord_bug_channel_example.png?v=1776891401\u0026width=2400","width":740,"height":276},{"base":"template_custom_gcode_location_apr_28_2026","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/template_custom_gcode_location_apr_28_2026.png?v=1777853134\u0026width=2400","width":2516,"height":874},{"base":"cali_x_axis_aligned","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/cali_x_axis_aligned.jpg?v=1777948750\u0026width=2400","width":512,"height":512},{"base":"Add_Preset_to_slicer","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/Add_Preset_to_slicer.png?v=1776655825\u0026width=2400","width":2018,"height":638},{"base":"open_orca_3mf_preset","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/open_orca_3mf_preset.png?v=1777998130\u0026width=2400","width":2366,"height":606},{"base":"open_as_orca_project_prompt","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/open_as_orca_project_prompt.png?v=1777998191\u0026width=2400","width":1684,"height":490},{"base":"save_as_new_orca_preset","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/save_as_new_orca_preset.png?v=1777998306\u0026width=2400","width":1892,"height":622},{"base":"orca_printer_notes_apr_28_1_2026","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/orca_printer_notes_apr_28_1_2026.png?v=1777999158\u0026width=2400","width":2106,"height":930},{"base":"orca_slicer_error_generated_by_swmc","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/orca_slicer_error_generated_by_swmc.png?v=1778000603\u0026width=2400","width":2112,"height":616}]