SteinWipe Motion Control - BBS X1 User Manual
[{"type":"paragraph","children":[{"t":"text","v":"SWMC Release: BBS_X1_SWMC_Machine_Preset_Apr.28.1.2025.3mf","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Developed On: Bambu Studio V.2.0.3","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_X1_Apr.28.1.2025 release of SteinWipe Motion Control (SWMC) for the Bambu Lab X1C running Bambu Studio. This is the first release built entirely around SteinSwitch Definitions (SSDs); every user-facing feature is now a simple keyword you drop into your printer notes. No G-code editing, no digging through preset files.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you are coming from the Feb.15.2.2025 stable release, everything you used to do by hand in the code is now a word you type. If you are brand new to SWMC, welcome; start with Section 1 and work forward.","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":"Apr.28.1.2025 is the Core 1 release of SWMC. A \u0026quot;core\u0026quot; is a generation of SWMC defined by how users configure it. Core 0 (Feb.15.2025) required editing G-code directly to flip features on or off. Core 1 replaces that with SSDs; keywords typed into the printer notes field. Everything you configure lives in one visible place; nothing is hidden in the code.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This release is distributed as a single .3mf file that opens directly in Bambu Studio and installs as a printer preset. Once installed, all configuration happens through the printer notes field; you never touch the G-code itself.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"1.2 What\u0026#39;s new versus Feb.15.2","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"SteinSwitch Definitions (SSDs). The entire feature toggle system is now keyword-driven. Share configs with other users by copying your printer notes.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinRetraction. Three-level managed retraction prevents filament stripping during AMS operations.","b":false,"i":false}]},{"children":[{"t":"text","v":"Chute tapping settings. Replaces the single always-on chute tap with three aggression levels.","b":false,"i":false}]},{"children":[{"t":"text","v":"Automated SteinWipe cycles. Insert wipe cycles on a schedule or at specific layers using Bambu Studio\u0026#39;s layer slider.","b":false,"i":false}]},{"children":[{"t":"text","v":"Dedicated TimeLapse G-code file. First BBS release to separate time lapse from layer change; includes smart coordination to prevent double-wiping.","b":false,"i":false}]},{"children":[{"t":"text","v":"AMS detour SSDs. Three toolpath choices plus a stock fallback.","b":false,"i":false}]},{"children":[{"t":"text","v":"Purge flow percentage control. Run purges at 25%, 50%, 75%, 100%, or 125% of full flow.","b":false,"i":false}]},{"children":[{"t":"text","v":"Mech test control. Link mechanical testing to bed level or part center positioning.","b":false,"i":false}]},{"children":[{"t":"text","v":"Fan cover alarm override. Disable the fan cover detection alarm when using custom fan covers without the magnet.","b":false,"i":false}]},{"children":[{"t":"text","v":"Purge bucket pause automation. Auto-pauses the print before the purge bucket overflows on long AMS jobs.","b":false,"i":false}]},{"children":[{"t":"text","v":"Skip startup purging. Start prints faster without sacrificing first layer quality.","b":false,"i":false}]},{"children":[{"t":"text","v":"Keep filament loaded at end of print. AMS retains filament position so the next print starts faster.","b":false,"i":false}]},{"children":[{"t":"text","v":"Arc-based wipe toolpaths. Smoother, quieter motion; less drag chain slap.","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"1.3 What\u0026#39;s fixed since Feb.15.1","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"BBS 1.10.2 \/ 2.0 slicing error (extrusion outside build plate)","b":false,"i":false}]},{"children":[{"t":"text","v":"Nozzle-too-hot issue burning PA test line start point on smooth plate","b":false,"i":false}]},{"children":[{"t":"text","v":"Fan cover detachment no longer allows prints to continue silently","b":false,"i":false}]},{"children":[{"t":"text","v":"Layer counter display lag corrected","b":false,"i":false}]},{"children":[{"t":"text","v":"Motor slip after print when initiating manual filament change","b":false,"i":false}]},{"children":[{"t":"text","v":"Return-to-print slicer bug that could send toolhead outside build volume","b":false,"i":false}]},{"children":[{"t":"text","v":"Long delay before AMS filament cutting (waiting on temps)","b":false,"i":false}]},{"children":[{"t":"text","v":"AMS return-to-print temps not falling fast enough (new temperature gradient)","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":"paragraph","children":[{"t":"text","v":"You will need a Bambu Lab X1C printer, the Bambu Studio version shown on this release\u0026#39;s card, the .3mf file linked from the release page, and a SteinWipe V1 wiper mount installed on your X1C. The wiper mount is recommended rather than strictly required; most SSDs work without hardware, but the actual wiping features need something to wipe against.","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 once and stay put across updates (as long as you do not re-import the preset from scratch).","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The current calibration workflow is the V3 .3mf file. You open it in the slicer, send it to the printer, and watch the progress bar for alignment. Full details are in Section 7.","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 X1C. 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. Or, you do not have a SteinWipe mount installed and plan to use only the code-only features like [[swmc_pause_routine]] or chute tapping; the wipe features need a wiper pad to wipe against.","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. Works on any OS.","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":"Click the \u0026quot;Add\u0026quot; tool in the toolbar and import the BBS_X1_SWMC_Machine_Preset_Apr.28.1.2025.3mf file.","b":false,"i":false}]},{"children":[{"t":"text","v":"If prompted, choose \u0026quot;Open as Project.\u0026quot;","b":false,"i":false}]},{"children":[{"t":"text","v":"Under the \u0026quot;Prepare\u0026quot; tab, 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;X1C SWMC Apr.28.1\u0026quot; works well.","b":false,"i":false}]},{"children":[{"t":"text","v":"Select your new preset from the printer dropdown. You are ready to slice.","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"The preset ships with baseline SSDs already entered in the printer notes field; you can use it as-shipped or edit the notes to customize (Section 5).","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% 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":"The Add tool in the Bambu Studio toolbar; click here to import the .3mf file.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Save as preset","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 under the Prepare tab. 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 SSDs 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":"An SSD is a keyword. When it appears on its own line in the printer notes, the feature is ON. When it is absent or commented out, the feature is OFF.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Behind the scenes, the G-code runs a regex check against the printer notes field. If the keyword is present, the enabled code path runs; if not, the default path runs. This is the work of Discord community member endernerd, who cracked multiline regex support in both Bambu Studio and Orca Slicer and made the entire SSD system possible.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"4.2 Rules for writing SSDs","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"These rules are strict; breaking them silently disables the feature with no warning.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SSDs are case sensitive. [[steinwipe_on_initial_startup]] works; SteinWipe_On_Initial_Startup does not.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"No spaces at the start or end of the keyword. Leading or trailing whitespace voids the definition.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"One SSD per line. Do not put two keywords on the same line.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Semicolon disables. Prefix a keyword with ; to comment it out without deleting it. For example, ;steinwipe_before_abl is disabled but stays in place for easy re-enabling later.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"4.3 Where to edit printer notes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"In Bambu Studio, open the Prepare tab, click the gear icon next to your printer preset (or right-click the preset and choose \u0026quot;Edit\u0026quot;), and scroll to the \u0026quot;Notes\u0026quot; field in machine settings. Type or paste SSDs one per line, then save the preset. Changes take effect on the next slice.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"% Printer notes location","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"bbs_printer_notes_location | scale=100 | caption=bottom","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Notes field inside the Bambu Studio machine settings; this is where every SSD goes. One keyword per line.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/%","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"4.4 Sharing configurations","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Your printer notes field is your SWMC configuration. Copy it and paste it anywhere; another user can drop it into their preset and get the same behavior. This is the main practical upgrade over Core 0; previously, sharing a config meant exchanging G-code files.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"5. Default configuration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The preset ships with the following baseline SSDs already in printer notes. These are the defaults recommended for most X1C users.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; X1C default printer notes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_on_initial_startup","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"chute_tapping_med","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"swmc_pause_routine","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"force_spiral_lift_for_pause","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"use_purge_work_light","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"z_mirrors_extrusion_length","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"nozzle_scrape_after_prime","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_before_abl","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"link_mech_test_to_bed_level","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"optimized_travel_to_first_layer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"mech_test_on_part_center","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinretraction_max","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_after_first_layer_scan","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"override_first_layer_scan_with_swmc","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_after_timelapse","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"ooze_prevention_before_flow_cali_scan","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"You can leave this as-is, add more SSDs, or comment out any you do not want. None of these are required; absence simply means the feature is off.","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":"The full set of SSDs available in this release, grouped by function. Each entry includes a clickable keyword and a Copy button. ","b":false,"i":false},{"t":"text","v":"Click the keyword","b":true,"i":false},{"t":"text","v":" to open its definition page with deeper technical detail. ","b":false,"i":false},{"t":"text","v":"Click Copy","b":true,"i":false},{"t":"text","v":" to copy the keyword directly to your clipboard for pasting into your printer notes.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.1 Startup definitions","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;ignore_fan_cover_alarm}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Disables the fan cover magnet sensor alarm. Use this if you have a custom fan cover without the magnet. Contributed by begna112, tested by OldSalty3D.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;inspect_nozzle_at_startup}}","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.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;skip_nozzle_prime}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Skips the startup priming sequence entirely. Useful when combined with [[leave_filament_in_end_print]] to start the next print faster.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;skip_build_plate_detection}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Prints the PA test line directly on the build plate QR code. If the QR is covered, the next print will not start; acts as a forced cleanup check between prints.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_on_initial_startup}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"On machine start, heats the tool and wipes any small strings before the Z-axis homing touch-off. Recommended default.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;nozzle_scrape_before_prime}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Scrapes the nozzle against the steel tab before the priming purge.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;nozzle_scrape_after_prime}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Scrapes the nozzle against the steel tab after priming. Cleaner first layer start.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;purge_sidestepping}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Moves the toolhead on the X-axis during purge to prevent heat buildup and improve cooling. Only works if the printable area is modified in BBS; see Known Issues.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;z_mirrors_extrusion_length}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Syncs Z travel with extrusion length for consistent flow during prime.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_before_abl}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle before the auto bed leveling scan. Cleaner probe readings.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;link_mech_test_to_bed_level}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs the mechanical test (input shaping) only when bed leveling runs. Prevents redundant tests on every print.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;mech_test_on_part_center}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs the mech test at the center of the printed part rather than a fixed bed location. Better shaping data for off-center prints.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;print_pa_line_over_qr}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Places the Pressure Advance test line over the build plate QR code for safety and consistency.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;optimized_travel_to_first_layer}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Smarter travel path from wiper exit to first layer start; reduces stringing.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;disable_printed_cali_lines}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Disables the printed calibration lines before first layer.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_after_first_layer_scan}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle after the X1C\u0026#39;s first-layer scan completes.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;override_first_layer_scan_with_swmc}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Hands first-layer scan orchestration from the stock firmware to SWMC. Required for cleanest scan plus wipe coordination.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;ooze_prevention_before_flow_cali_scan}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs pre-scan ooze management before the flow calibration scan.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_after_flow_cali_scan}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle after the flow calibration scan.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.2 Wipe cycle control","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_before_tool_change}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle before every AMS tool change.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_after_tool_change}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle after every AMS tool change.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_after_timelapse}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe cycle after each timelapse frame capture. Prevents ooze from accumulating during time lapse pauses.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_at_end_print}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a final wipe at print end.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;towerless_smooth_timelapse}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Ships commented out; not working in this release. Do not enable.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Wipe cadence (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick a single cadence for scheduled wipes. Stacking multiple cadence SSDs does not add them together; the most frequent one wins. For fine-grained control, use Bambu Studio\u0026#39;s layer slider to insert wipes at specific layers.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Wipe cadence (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_every_new_layer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_every_other_layer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_every_third_layer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_every_fourth_layer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_every_new_layer}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe on every single layer. Used sparingly; most users prefer the cadences below.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_every_other_layer}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe every second layer.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_every_third_layer}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe every third layer.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinwipe_every_fourth_layer}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Runs a wipe every fourth layer.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"You can also use Bambu Studio\u0026#39;s layer slider to insert a wipe cycle at any specific layer. Right-click the slider at the desired layer and insert a pause; the wipe cycle runs automatically at that layer.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.3 AMS definitions","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;skip_ams}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Cleans up slicer toolpath display if you do not have an AMS. Disables AMS-specific code paths.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;use_pla_supports_for_petg}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Adds extra priming for the dissimilar-material transition. Cleaner PETG prints with PLA supports.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;shrink_purge_size}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Splits large purges into smaller chunks to help prevent chute clogs.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;optimize_post_ams_return_print_travel}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Optimizes the travel path after AMS returns. Known bug can send the toolhead outside the build volume on multi-plate prints. Use with caution.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"AMS detour (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Three toolpath choices for AMS travel. Only one should be active at a time; they are mutually exclusive.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; AMS detour (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"ams_steinwipe_detour","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"ams_snake_detour","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"ams_reverse_wipe_detour","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;ams_steinwipe_detour}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Routes AMS travel through the wiper area for a single wipe after each material cut.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;ams_snake_detour}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Tucks the filament string behind the chute wall by passing over the lower part of the chute.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;ams_reverse_wipe_detour}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Enters the chute by backward-wiping the nozzle on the stock wiper.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Purge bucket pause (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Auto-pauses the print when the purge bucket approaches overflow. Pick the size that matches your physical bucket.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Purge bucket pause (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"pause_print_for_small_purge_bucket","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"pause_print_for_med_purge_bucket","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"pause_print_for_large_purge_bucket","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;pause_print_for_small_purge_bucket}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pauses the print after approximately 50 AMS cycles.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;pause_print_for_med_purge_bucket}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pauses the print after approximately 175 AMS cycles.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;pause_print_for_large_purge_bucket}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pauses the print after approximately 350 AMS cycles.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.4 Global definitions","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;dark_mode}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Keeps the toolhead light off during printing.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;use_purge_work_light}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Turns the toolhead light on during purges so the chamber camera can see what is happening. Useful for diagnosing chute issues remotely.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;use_hf_nozzle}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Cancels filament stripping prevention. Required when using a high-flow nozzle such as the Bambu HF or Panda Revo.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;leave_filament_in_end_print}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Prevents the AMS from unloading filament at the end of a print. Next print starts faster.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Purge flow (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Sets purge flow as a percentage of full flow. If multiple purge flow SSDs are enabled by accident, the lowest percentage wins.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Purge flow (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"purge_with_25_percent_flow","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"purge_with_50_percent_flow","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"purge_with_75_percent_flow","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"purge_with_125_percent_flow","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;purge_with_25_percent_flow}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Purges at 25% of full flow.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;purge_with_50_percent_flow}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Purges at 50% of full flow.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;purge_with_75_percent_flow}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Purges at 75% of full flow.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;purge_with_125_percent_flow}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Purges at 125% of full flow. Requires [[use_hf_nozzle]]. Hard-capped at the filament\u0026#39;s max volumetric speed regardless.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Chute tapping (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Three aggression levels for the chute tap. Harder tapping dislodges more stuck material but risks flinging purge out of the chute. Choose one; they are mutually exclusive.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Chute tapping (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"chute_tapping_soft","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"chute_tapping_med","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"chute_tapping_hard","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;chute_tapping_soft}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Taps the chute door at 4000 mm\/s² acceleration. Lowest aggression.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;chute_tapping_med}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Taps the chute door at 4500 mm\/s² acceleration. Recommended default.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;chute_tapping_hard}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Taps the chute door at 5000 mm\/s² acceleration. Too hard can fling purge out of the chute.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"SteinRetraction (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Managed retraction system. Prevents filament stripping during AMS operations. Choose one; they are mutually exclusive.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; SteinRetraction (choose one)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinretraction_low","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinretraction_med","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinretraction_max","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinretraction_low}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Managed retraction at the low end of the SteinRetraction range.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinretraction_med}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Medium managed retraction.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;steinretraction_max}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Maximum managed retraction. Recommended default for AMS users.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.5 SWMCL pause routine","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The SWMC Lite pause routine is baked into this preset. Enable it with [[swmc_pause_routine]].","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;swmc_pause_routine}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Activates the modified pause routine. Pauses your print, safely lifts off the part, and waits for you to resume. On resume, re-primes the nozzle cleanly and wipes before returning to the print.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;force_spiral_lift_for_pause}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Forces a spiral lift off the part during pause regardless of the Z-hop setting. Strong anti-stringing behavior.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{{\u0026gt;lower_bed_on_pause}}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Works in the Orca version of the SWMCL pause routine but not in the BBS version. BBS lacks the required variable to safely lower the bed inside the Pause G-code section. Enabling this SSD in BBS has no effect.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The same purge flow, chute tapping, [[use_hf_nozzle]], [[use_purge_work_light]], and [[dark_mode]] SSDs from Section 6.4 also apply to pause purges. Their behavior is identical; setting them once controls both the startup purge and the pause purge.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"To insert a pause into a print, use Bambu Studio\u0026#39;s layer slider; right-click at the desired layer and choose insert pause. Re-slice after inserting before sending to the printer.","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":"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":"7.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":"7.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":"paragraph","children":[{"t":"text","v":"Before running calibration, consider enabling [[nozzle_cleaning]] in your printer notes. The V3 cali has special code during pause that kills the motors, letting you move the toolhead around freely for nozzle inspection and cleaning. When done, press play on the printer screen; the printer re-homes and continues the cali sequence.","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 SSDs in your printer notes. For Y calibration, add [[cali_y_axis_offset]]. For X, add [[cali_x_axis_offset]]. You can run one or both; enabling both just means the sequence takes longer.","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. Reference photos for correct alignment are below.","b":false,"i":false}]},{"children":[{"t":"text","v":"Look up that percentage on the Offset Chart (also below) to get the offset value.","b":false,"i":false}]},{"children":[{"t":"text","v":"Repeat for the other axis if you enabled both.","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. A screenshot of where this lives is below.","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"If alignment is perfect at the center position (progress bar at the zero point), leave the user offset at G0 X0 Y0 and you are done.","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. Note this alignment and the corresponding progress bar percentage.","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. Watch the nozzle and note the percentage at the aligned position.","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. Also available as a separate download from the Dev Pack.","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":"7.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 (not always required, but recommended)","b":false,"i":false}]},{"children":[{"t":"text","v":"If you unbolt and re-mount the wiper AND the mount holes were drilled oversized (the mount slides on its bolts)","b":false,"i":false}]},{"children":[{"t":"text","v":"After moving the printer if you suspect mount shift","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"Correctly sized mount holes let the mount return to the same position when re-bolted, so well-drilled mounts rarely need recalibration.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"7.4 Why the .3mf workflow is preferred over older methods","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The release resources also include an older V2 calibration workflow using 63 individual gcode files on an SD card. Calibration files are free to download for logged-in users from the release page, regardless of whether you purchased the full Dev Pack. The V2 workflow still works, but the X1C does not ship with an SD card, macOS users hit a bug where ._ metadata files written to FAT-formatted SD cards appear in the printer\u0026#39;s file browser and \u0026quot;print\u0026quot; for a moment before reporting complete, and 63 files is a lot of files to manage. The V3 .3mf workflow skips the SD card entirely; slice, send, done. Use V3 unless you have a specific reason not to.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"8. Typical configurations","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick the starting point closest to your use case, then adjust from there. Copy any of these blocks and paste into your printer notes.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.1 Recommended baseline (I just want it to work)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Use the default configuration shipped with the preset (Section 5). This is the setup that runs on Leckiestein\u0026#39;s own X1C and covers 80% of users well.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.2 Multicolor PETG prints","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Start with the defaults, then add:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Multicolor PETG additions","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"use_pla_supports_for_petg","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"shrink_purge_size","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"ams_snake_detour","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_before_tool_change","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_after_tool_change","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"pause_print_for_med_purge_bucket","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The [[shrink_purge_size]] and [[pause_print_for_med_purge_bucket]] together prevent the chute from overflowing on long multicolor prints. Swap _med for _large if you are running a high-capacity bucket.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.3 High-flow nozzle (Bambu HF or Panda Revo)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Add to defaults:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; High-flow nozzle additions","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"use_hf_nozzle","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"purge_with_125_percent_flow","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This unlocks the full purge flow of the high-flow nozzle and disables filament stripping prevention code that is not needed on HF setups.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.4 Time lapse prints","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"[[steinwipe_after_timelapse]] is on by default in the preset, so you are already covered. Do not enable [[towerless_smooth_timelapse]]; it is not working in this release and ships commented out.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.5 Scheduled wipes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pick one cadence:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Scheduled wipes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"steinwipe_every_third_layer","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Avoid stacking multiple cadence SSDs; the most frequent one wins. For fine-grained control, use the Bambu Studio layer slider to insert wipes at specific layers.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"9. Known issues","b":false,"i":false}]},{"type":"paragraph","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.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Oversized mount holes force repeat calibration. If the mount holes were drilled oversized during installation, the mount will slide on its bolts and need recalibration every time it is unbolted. Correctly sized holes let the mount return to the same position when re-mounted.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"[[optimize_post_ams_return_print_travel]] and multi-plate prints. This SSD uses a slicer variable that has a known bug; it can send the toolhead outside the build volume on multi-plate prints. Disable this SSD when running multi-plate jobs.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Sidestepping print-out-of-bounds error. Newer BBS versions can throw a \u0026quot;Printing out of bounds\u0026quot; error when [[purge_sidestepping]] is enabled, because the virtual slicer position falls off the plate. The documented supported combination for sidestepping is BBS 1.10.1.50 with Orca 2.3.0; newer BBS versions may need a workaround. See Discord for the current fix.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"[[towerless_smooth_timelapse]] is not working. This SSD ships commented out and should stay that way. It is a work-in-progress feature.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"[[lower_bed_on_pause]] does not work in BBS. Only functions in the Orca Slicer version of the SWMCL pause routine. BBS lacks the variable needed to safely lower the bed inside the pause code.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Mac SD card metadata files. Only affects the V2 calibration workflow. macOS writes hidden ._ metadata files to FAT-formatted SD cards that appear as phantom print files. Use Windows or Linux to copy files to the SD card, or skip the SD card workflow entirely and use the V3 .3mf calibration.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"10. Reporting bugs","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Issues with this release go to the Leckiestein Discord bug reporting channel for Core Apr.28.1. 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":"heading","level":2,"children":[{"t":"text","v":"11. Credits","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This release stands on community contributions. endernerd cracked multiline regex support in BBS and Orca, enabling the entire SSD system. OldSalty3D tested the M630 fan cover alarm gcode and suggested the purge flow percentage feature; first community contributor to receive an explicit code comment credit (line 67 of Start G-code). begna112 suggested [[ignore_fan_cover_alarm]]. Reiny suggested related mech test linkage. And every Tier 2 and Tier 3 Patron who beta-tested Apr.28.1 from the Apr 24 pre-release through to the public ship.","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":"The Orca port of Apr.28.1.2025 is in progress at time of writing. Core 2 (Apr.28.1.2026) introduces SteinWipe User Definitions (SWUDs) alongside SSDs; global variables at the top of start gcode let you tune numeric parameters, not just on\/off toggles. Orca only at launch. SteinWipe Pro hardware (formerly V2) with integrated ProTab enables primetowerless AMS cycles; see the separate Dev Pack Pro listing.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"13. 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}]}]
[{"base":"wiper_mount_installed","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/wiper_mount_installed.jpg?v=1776877683\u0026width=2400","width":4032,"height":2268},{"base":"install_step_1_import","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/install_step_1_import.png?v=1776878899\u0026width=2400","width":1046,"height":278},{"base":"install_step_2_preset","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/install_step_2_preset.png?v=1776878899\u0026width=2400","width":1588,"height":690},{"base":"bbs_printer_notes_location","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/bbs_printer_notes_location.png?v=1776879060\u0026width=2400","width":1378,"height":448},{"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":"offset_chart_v3","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/offset_chart_v3.png?v=1776879866\u0026width=2400","width":800,"height":926},{"base":"template_custom_gcode_location","url":"https:\/\/leckiestein.com\/cdn\/shop\/files\/template_custom_gcode_location.png?v=1776879798\u0026width=2400","width":1774,"height":838}]