SWMC Preset Cores Explained - Project Resource
[{"type":"heading","level":2,"children":[{"t":"text","v":"SWMC Preset Cores Explained","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A complete reference for how the SteinWipe Motion Control core system works, where it started, and where it\u0026#39;s headed. If you\u0026#39;ve ever looked at a SWMC release name like Apr.28.1.2025 and wondered what the four parts mean, or seen Core 0, Core 1, and Core 2 referenced across the site and wanted to understand the difference, this is the document for you.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This is a one-stop resource page linked from the main project documentation. It is not tied to any specific release; it covers the system itself.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"1. What is a SWMC core?","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A ","b":false,"i":false},{"t":"text","v":"core","b":true,"i":false},{"t":"text","v":" is a specific generation of SteinWipe Motion Control defined by the way users configure it. When the underlying method for customizing SWMC changes at a fundamental level, that marks the birth of a new core.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The feature list can grow across the lifetime of a core, bugs can get fixed, new slicer versions can be supported - but as long as users are interacting with SWMC through the same control mechanism, it\u0026#39;s the same core. When the control mechanism itself changes, a new core begins.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Three cores have been formalized so far:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Core 0","b":true,"i":false},{"t":"text","v":" (Feb.15.2025) - introduced inline {if true\/false} toggles as the configuration method","b":false,"i":false}]},{"children":[{"t":"text","v":"Core 1","b":true,"i":false},{"t":"text","v":" (Apr.28.2025) - introduced SteinSwitch Definitions (SSDs); keyword-based configuration through printer notes","b":false,"i":false}]},{"children":[{"t":"text","v":"Core 2","b":true,"i":false},{"t":"text","v":" (Apr.28.2026) - introduces SteinWipe User Definitions (SWUDs); global variables at the top of start gcode for numeric parameter control","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"Each core represents not just a new version of the software but a new way of interacting with it. Understanding the core system is understanding the architectural history of the project.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"2. Why cores exist","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWMC started as a set of hand-edited gcode files. As the project grew, two problems became obvious.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"First, releases needed stable identifiers. A user who bought the January 2025 release shouldn\u0026#39;t wake up to find their purchase had silently become a different product. A release name needed to be permanent and traceable forever.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Second, configurability was outgrowing the code-editing model. Asking users to find a specific line in the gcode, change {if true} to {if false}, save, and re-slice every time they wanted to tweak a feature worked for early adopters. It did not scale. Something more approachable was needed.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The core system solves both problems at once. A release name is permanent the moment it\u0026#39;s shipped; it never changes. And when the configuration method itself evolves into something meaningfully better, the new approach gets its own core name so old and new can coexist without confusion.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Users on Core 0 can stay on Core 0 forever without their release becoming something else. Users who want the keyword-based Core 1 can upgrade without forcing anyone else to. And when Core 2 ships with global variables for numeric tuning, everyone can choose their trade-off between stability, newness, and configurability.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"3. How cores are named","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Every core name follows the same format:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"[Month].[Day].[Version].[Year]","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Broken down:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Month and Day","b":true,"i":false},{"t":"text","v":" - the founding date of the core\u0026#39;s first version. This is the core\u0026#39;s permanent identity; it never changes.","b":false,"i":false}]},{"children":[{"t":"text","v":"Version","b":true,"i":false},{"t":"text","v":" - which release this is within the core family. Starts at 1 and increments for each update that stays on the same foundation.","b":false,"i":false}]},{"children":[{"t":"text","v":"Year","b":true,"i":false},{"t":"text","v":" - the year tied to the core\u0026#39;s founding date.","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"So Apr.28.1.2025 is the first version of the core founded on April 28, 2025.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"3.1 Examples","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Feb.15.1.2025 - Core 0, version 1 (beta)","b":false,"i":false}]},{"children":[{"t":"text","v":"Feb.15.2.2025 - Core 0, version 2 (stable)","b":false,"i":false}]},{"children":[{"t":"text","v":"Apr.28.1.2025 - Core 1, version 1","b":false,"i":false}]},{"children":[{"t":"text","v":"Apr.28.1.2026 - Core 2, version 1 (upcoming)","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"Notice that Core 0 and Core 1 both share the year 2025 but have different founding dates. And notice that Core 1 (Apr.28.1.2025) and Core 2 (Apr.28.1.2026) share the same founding date in different years. The full four-part format is what makes each core name unambiguous.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"3.2 Why dots and not underscores","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Early releases used underscore-separated dates in filenames (Apr_28_1_2025). The convention formalized to dots in 2025 for readability. Files from the underscore era are still readable if you encounter them, but new releases and documentation use the dot convention. In filenames, the full product name uses underscores to separate its TOKENS, while the core date inside keeps its dots:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"BBS_X1_SWMC_Machine_Preset_Apr.28.1.2025.3mf","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"3.3 Core dates are founding dates, not shipping dates","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This is the most important detail in the system. A core\u0026#39;s date is the target founding date of that core\u0026#39;s development, not the date the first file shipped. The first file in a core may ship on or near the core\u0026#39;s date; later files within the same core can ship months or even years later without changing the core name.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The best example is Core 1. Its founding date is Apr.28.2025. The first BBS preset in that core shipped on Apr.30.2025 (close to the founding date). The first Orca preset in the same core shipped on Feb.21.2026 - nearly ten months later - and correctly carries the same Apr.28.1.2025 core name because it\u0026#39;s built on the same foundation.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"If you see a core date that\u0026#39;s much older than a recent release, that\u0026#39;s not a typo. It\u0026#39;s the system working correctly.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"4. How to read a release card","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A release card on the project documentation page shows three pieces of information that often get confused. Here\u0026#39;s what each means:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core date","b":true,"i":false},{"t":"text","v":" (e.g., Apr.28.1.2025) - The foundation the release is built on. Same across all releases that share the architecture.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Shipped date","b":true,"i":false},{"t":"text","v":" - The specific date this particular file was published. For the first release in a core, shipped date is close to the core date. For later releases in the same core, shipped date can be well after the core date.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Supported slicer version","b":true,"i":false},{"t":"text","v":" - The slicer version(s) this specific file was developed against. Shown separately from the core, because slicer versions update more frequently than core foundations.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All three are independent. A single release can have a core date of Apr.28.1.2025, a shipped date of Apr.30.2025, and be supported on Bambu Studio 2.0.3. None of those three dates have to match.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"5. The control architecture story","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The core system isn\u0026#39;t just versioning for its own sake. Each core corresponds to a fundamentally different way users interact with SWMC. Here\u0026#39;s the architectural evolution.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.1 Pre-formalization era: inline switches (Jan 2025)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Before the core naming system existed, SWMC was configured by manually editing the gcode. Features were wrapped in {if true} \/ {if false} conditional blocks that the user would find, toggle, and save. Comments near each block explained what it did.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A simplified example of what this looked like:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Pre-formalization inline toggle pattern","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";X SteinSwitch feature_name - description","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;true\u0026quot; to enable","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";Set to \u0026quot;false\u0026quot; to disable","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if true}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; feature gcode runs here","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{endif}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This worked, but only for users willing to work in the code. The term \u0026quot;SteinSwitch\u0026quot; originated here; it referred to the literal code switch that users flipped.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.2 Core 0: formalized inline switches (Feb.15.2025)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 0 kept the same inline-toggle mechanism but formalized everything around it. The release naming convention, the testing methodology, and the documentation pattern all stabilized with Core 0. The {template_custom_gcode} macro was introduced to eliminate duplicated wipe code across gcode sections. The {if true\/false} block became the canonical control pattern, and each one got a numbered comment header for discoverability.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The configuration experience was the same as the pre-formalization era. Users still edited gcode directly. The improvement was everything around that editing: a consistent structure, a real release numbering system, and a foundation that could grow without breaking existing users.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.3 Core 1: SteinSwitch Definitions (Apr.28.2025)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 1 is where things changed dramatically. A Discord community member named endernerd cracked multiline regex support in both Bambu Studio and Orca Slicer, which enabled a pattern like this:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Core 1 SSD detection pattern","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{if printer_notes =~ \/.","b":false,"i":false},{"t":"text","v":"^keyword_name$.","b":false,"i":true},{"t":"text","v":"\/}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; feature enabled; run this path","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{else}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"; feature disabled; run default path","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{endif}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Instead of editing the gcode, users now type keywords into the slicer\u0026#39;s printer notes field, one per line. The gcode reads the notes field and matches keywords against a regex. Feature keyword present in notes means feature enabled. Keyword absent means feature disabled.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This is the SteinSwitch Definition (SSD). Same concept as the old inline SteinSwitch; completely different user experience.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"What it unlocked:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"No code editing.","b":true,"i":false},{"t":"text","v":" Users who don\u0026#39;t want to touch gcode never have to.","b":false,"i":false}]},{"children":[{"t":"text","v":"Easy configuration sharing.","b":true,"i":false},{"t":"text","v":" Copy your printer notes field as plain text and send it to another user. They paste it in, they get your setup.","b":false,"i":false}]},{"children":[{"t":"text","v":"Mutually-exclusive groups.","b":true,"i":false},{"t":"text","v":" Multiple keywords can coexist cleanly in the same notes field; absence equals \u0026quot;off\u0026quot; by default, so every feature starts disabled and users opt in to what they want.","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"Core 1 shipped with the full feature set of Core 0 plus several new features that were only practical in the keyword-based architecture: SteinRetraction variants, chute tapping aggression levels, purge flow percentage control, automated wipe cadences, and the AMS detour family.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"5.4 Core 2: SteinWipe User Definitions (Apr.28.2026)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 1 gave users easy on\/off control. Core 2 adds something SSDs can\u0026#39;t do: ","b":false,"i":false},{"t":"text","v":"numeric parameter control","b":true,"i":false},{"t":"text","v":".","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"An SSD is binary. A feature is either on or off. But many features would be more useful if users could tune the numbers inside them. How fast should the toolhead wipe? How long should the purge bucket dwell? What temperature gradient should the AMS purge use?","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SteinWipe User Definitions (SWUDs) handle these. A SWUD is a global variable declared at the top of the start gcode in a User Config section:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Core 2 SWUD declaration pattern","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";===================== User Config =======================","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"global variable_name = value;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"global another_variable = 42.00;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Users edit the values directly. Integers are written as whole numbers; floats must include a decimal and trailing zeros so the parser reads them correctly.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 2 runs both systems side by side. SSDs continue to handle on\/off toggles. SWUDs handle numeric tuning and named parameter sets. The combination gives users much finer control than either system alone.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"One important caveat: SWUDs only work in Orca Slicer. Bambu Studio does not support global variables at the top of start gcode, so SWUD-driven features will be Orca-exclusive at Core 2 launch. SSDs remain cross-compatible across both slicers.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"6. The pre-formalization era (Jan 2025)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The SWMC project\u0026#39;s earliest releases predate the core system and sit in their own category: ","b":false,"i":false},{"t":"text","v":"pre-formalization","b":true,"i":false},{"t":"text","v":". These releases are functional cores in everything but name. They shipped as real products to real customers and their code is the direct ancestor of everything that came after. But they lack the formal testing methodology, hardware coverage, and naming rigor that started with Core 0.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.1 Jan.12 through Jan.22","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Not tracked as named releases. These were development builds covering the initial X1C support rollout. Key milestones during this period:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Jan 12, 2025","b":true,"i":false},{"t":"text","v":": First X1C Bambu Studio machine profile 3MF beta. The file size exceeded 40kb and SteinSwitch options for factory toggle were removed to fit.","b":false,"i":false}]},{"children":[{"t":"text","v":"Jan 15, 2025","b":true,"i":false},{"t":"text","v":": Jan.15.1.2025 soft release for Patrons. First complete SWMC release ever shipped - startup code restructured, sensor code deconstructed, hockey stick purge replaced with proper Pressure Advance test line.","b":false,"i":false}]},{"children":[{"t":"text","v":"Jan 16, 2025","b":true,"i":false},{"t":"text","v":": Official X1C launch with AMS support. Addressed a print-head lift issue that was jamming into the camera, and moved the PA test line over the build plate QR code as a safety feature.","b":false,"i":false}]},{"children":[{"t":"text","v":"Jan 19, 2025","b":true,"i":false},{"t":"text","v":": All start codes updated for dynamic calculation to accommodate different nozzle sizes.","b":false,"i":false}]},{"children":[{"t":"text","v":"Jan 20, 2025","b":true,"i":false},{"t":"text","v":": Discord opens for Patrons.","b":false,"i":false}]},{"children":[{"t":"text","v":"Jan 22, 2025","b":true,"i":false},{"t":"text","v":": Additional wiper mount offsets released (0.0, +0.5, +1.0mm); new drill template; installation video.","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.2 Jan.25.1.2025","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A named pre-formalization release covering the first Machine Preset Models for P1 Series and X1. Built on the same inline-toggle architecture as Jan.15. Notable for completely reworking the material change code for both BBS and Orca, introducing pre-wipe on wiper pad before purge, and optimizing travels so the toolhead rapids straight to the cut area instead of routing through the chute.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Still available in Dev Pack 2025 for archival access, though usage is low. A candidate for eventual removal.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.3 Jan.30.1.2025","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Orca Slicer X1 Machine Preset Beta release, Discord beta testers only. Brought the weekend\u0026#39;s BBS developments over to Orca. Never formally shipped as a public release; was a stepping stone to Core 0.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"6.4 Why pre-formalization releases matter","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"These releases are important for three reasons.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"First, they\u0026#39;re the direct ancestors of Core 0. Many patterns that stabilized in Core 0 originated in the Jan 2025 work, including the numbered SteinSwitch commenting convention and the wiper-entry XY position conventions.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Second, they\u0026#39;re available for users who purchased them at the time. Leckiestein honors the purchase regardless of how long ago it was made.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Third, they\u0026#39;re a useful historical reference for anyone tracing the project\u0026#39;s evolution. The jump from inline toggles in Jan 2025 to the full Core 0 formalization in Feb 2025 is short in calendar time but significant in engineering maturity.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"7. Core 0: Feb.15.2025","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The first formally-named core. Founded on February 15, 2025 and carried the project from bedrock to stable.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"7.1 Timeline","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Feb 15, 2025","b":true,"i":false},{"t":"text","v":": Core 0 founded. First formally-named core under the new naming and testing system.","b":false,"i":false}]},{"children":[{"t":"text","v":"Feb 24, 2025","b":true,"i":false},{"t":"text","v":": Feb.15.1.2025 release (first public beta): full Orca 2.2.0 and BBS 1.10.1.50 support, completely rewritten material change code, chute tapping, sidestepping, work light purge cycles, PA test line over QR, improved first-layer scanning, user offsets at template level.","b":false,"i":false}]},{"children":[{"t":"text","v":"Apr 30, 2025","b":true,"i":false},{"t":"text","v":": Feb.15.2.2025 release (first STABLE): added the ams_detour SteinSwitch, flipped fan cover alarm to ON by default, upgraded the Template Custom G-code from 41 to 65 lines with arc-based wipe moves, and fixed a batch of user-reported bugs.","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"7.2 What Core 0 contributed","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The architectural contribution of Core 0 was the reusable wipe macro. Before Core 0, every gcode section that needed a wipe cycle duplicated the entire scrub motion code. Core 0 pulled that shared code into a dedicated Template Custom G-code section and replaced every duplicate with a single macro call.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The effect was dramatic. End G-code dropped from 268 lines to 90. Pause dropped from 94 lines to 68. Every future improvement to the wipe pattern now happens in one place instead of ten.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 0 also established the feature-testing conventions. Every feature shipped in Core 0 had been bench-tested on real hardware before release. The \u0026quot;beta → stable\u0026quot; pipeline that defines how SWMC ships now originated here.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"7.3 Feature highlights","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Chute tapping (first appearance)","b":false,"i":false}]},{"children":[{"t":"text","v":"Sidestepping purges for more uniform purge distribution","b":false,"i":false}]},{"children":[{"t":"text","v":"Work light purge cycles for camera-visible debugging","b":false,"i":false}]},{"children":[{"t":"text","v":"Smarter wipe cycle options (before AMS \/ after AMS \/ both)","b":false,"i":false}]},{"children":[{"t":"text","v":"Completely overhauled first layer scanning","b":false,"i":false}]},{"children":[{"t":"text","v":"User offsets at template level; one place to enter calibration values, applied across all prints","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"7.4 Status","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 0 is ","b":false,"i":false},{"t":"text","v":"superseded but still in production","b":true,"i":false},{"t":"text","v":". Feb.15.2.2025 (the stable release) remains in Dev Pack 2025 and is actively maintained for users who prefer the proven baseline. Feb.15.1.2025 is the beta that led to the stable; still available for historical access. Core 1 is the recommended path for most new users.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"8. Core 1: Apr.28.2025","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The SSD revolution. Core 1 transformed SWMC from a code-editing project into a keyword-configuration project.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.1 Timeline","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Apr 24, 2025","b":true,"i":false},{"t":"text","v":": SWMC pre-release for X1C BBS with full SSD suite (beta) to Tier 2+ Patrons.","b":false,"i":false}]},{"children":[{"t":"text","v":"Apr 28, 2025","b":true,"i":false},{"t":"text","v":": Core 1 founded.","b":false,"i":false}]},{"children":[{"t":"text","v":"Apr 30, 2025","b":true,"i":false},{"t":"text","v":": Apr.28.1.2025 major release for BBS 2.0.3. SSDs roll out across the full SWMC codebase. P1 and X1 listings move from BETA to STABLE. Same day as Core 0\u0026#39;s first stable release; Core 0 and Core 1 began shipping in parallel.","b":false,"i":false}]},{"children":[{"t":"text","v":"Feb 21, 2026","b":true,"i":false},{"t":"text","v":": First Orca preset in Core 1 family released; nearly ten months after the first BBS preset. Illustrates the \u0026quot;core date is not shipping date\u0026quot; rule.","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.2 What Core 1 contributed","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The architectural contribution was the keyword-detection regex. Community member endernerd cracked multiline regex support in both BBS and Orca Slicer, which unlocked a pattern where the gcode could inspect the printer notes field and match arbitrary keywords.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Once that was working, every {if true\/false} toggle in the codebase could be replaced with an equivalent {if printer_notes =~ \/...\/} check. The user experience flipped from \u0026quot;edit the gcode\u0026quot; to \u0026quot;type a keyword in the notes field.\u0026quot;","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.3 Feature highlights","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 1 ships with 54 unique SSDs across the full machine preset. Highlights include:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"SteinRetraction variants","b":true,"i":false},{"t":"text","v":" (low\/med\/max) - managed retraction lengths for cleaner AMS operations","b":false,"i":false}]},{"children":[{"t":"text","v":"Chute tapping aggression","b":true,"i":false},{"t":"text","v":" (soft\/med\/hard) - replaces the single always-on chute tap with tunable levels","b":false,"i":false}]},{"children":[{"t":"text","v":"Automated SteinWipe cycles","b":true,"i":false},{"t":"text","v":" - scheduled wipes on a cadence or at specific layers","b":false,"i":false}]},{"children":[{"t":"text","v":"Purge flow percentage control","b":true,"i":false},{"t":"text","v":" (25%, 50%, 75%, 125%) - limits purge flow to a fraction of full for smoother transitions","b":false,"i":false}]},{"children":[{"t":"text","v":"AMS detour family","b":true,"i":false},{"t":"text","v":" - three toolpath options for routing AMS material swaps","b":false,"i":false}]},{"children":[{"t":"text","v":"Mech test control","b":true,"i":false},{"t":"text","v":" - link the mechanical vibration test to bed leveling; run it on part center","b":false,"i":false}]},{"children":[{"t":"text","v":"Purge bucket pause automation","b":true,"i":false},{"t":"text","v":" - auto-pauses the print when the purge bucket approaches overflow","b":false,"i":false}]},{"children":[{"t":"text","v":"Fan cover alarm override","b":true,"i":false},{"t":"text","v":" - disables the fan cover alarm for users with custom fan covers","b":false,"i":false}]},{"children":[{"t":"text","v":"TimeLapse improvements","b":true,"i":false},{"t":"text","v":" - dedicated TimeLapse G-code section with coordination logic","b":false,"i":false}]},{"children":[{"t":"text","v":"Arc-based SteinWipe toolpaths","b":true,"i":false},{"t":"text","v":" - inherited from Core 0\u0026#39;s Feb.15.2 upgrade, now the standard","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"8.4 Status","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 1 is ","b":false,"i":false},{"t":"text","v":"current stable","b":true,"i":false},{"t":"text","v":". The BBS X1 release is actively maintained. The Orca ports are still being developed.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"9. Core 2: Apr.28.2026","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The current frontier. Core 2 introduces SWUDs and unlocks the next generation of SWMC features, including SteinWipe Pro hardware integration.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"9.1 Timeline","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"May 10, 2025","b":true,"i":false},{"t":"text","v":": Early Core 2 development starts based on an Apr.28.2 prototype.","b":false,"i":false}]},{"children":[{"t":"text","v":"Feb 14, 2026","b":true,"i":false},{"t":"text","v":": SteinWipe Pro (formerly V2) showcase with ProTab feature.","b":false,"i":false}]},{"children":[{"t":"text","v":"Apr 28, 2026","b":true,"i":false},{"t":"text","v":": Core 2 target launch date. Dev Pack Pro goes live. First official Core 2 release ships: Apr.28.1.2026 for Orca Slicer on P1 Series.","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"9.2 What Core 2 contributes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The architectural contribution is SWUDs; global variables at the top of start gcode that give users numeric parameter control.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A SWUD is declared in the User Config section at the top of the Machine Start G-code:","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\u0026amp; Core 2 User Config section","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":";===================== User Config =======================","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"{","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"global rapid_travel = 500;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"global chute_antistick_fan_percent = 45;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"global purge_cooling_time_ms = 1800;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"}","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"\/\u0026amp;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Users edit the values directly. Integers are written as whole numbers (500); floats must include decimals with trailing zeros (17.00). The gcode reads these global variables throughout the print and applies them wherever that parameter is used.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This unlocks a class of features that SSDs can\u0026#39;t do well: anything that needs a tunable number rather than an on\/off state. Nozzle max volumetric speed per nozzle diameter, purge cooling dwell time, chute tapping strike distance, sidestepping extrusion compensation - all become user-adjustable without code editing.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"9.3 Feature highlights at Core 2 launch","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Primetowerless AMS cycles are the marquee feature. SWMC Pro replaces the fixed 2mm tool change retraction with a coordinated dock-and-prime sequence on the all-new ProTab, eliminating the need for a prime tower on multicolor prints at \u0026gt;99% reliability in lab testing with AMS2 head-dried PETG-HF.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Other Core 2 additions:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Production mode","b":true,"i":false},{"t":"text","v":" - keeps the machine hot after a print finishes so the next print can start faster (ideal for ABS, where conditioning takes 30+ minutes)","b":false,"i":false}]},{"children":[{"t":"text","v":"Manual AMS","b":true,"i":false},{"t":"text","v":" - multi-material printing without an AMS installed; community-contributed by TeaThistle","b":false,"i":false}]},{"children":[{"t":"text","v":"Extended SteinRetraction for Panda Revo","b":true,"i":false},{"t":"text","v":" (steinretraction_revo) - retraction lengths 21-22mm, beyond the slicer\u0026#39;s 18mm cap, for the Revo\u0026#39;s shorter melt zone","b":false,"i":false}]},{"children":[{"t":"text","v":"PA calibration variants","b":true,"i":false},{"t":"text","v":" - cali_pa_to_max_filament_volumetric and cali_pa_to_top_layer_volumetric for more accurate pressure advance on large-surface prints","b":false,"i":false}]},{"children":[{"t":"text","v":"Startup scrub","b":true,"i":false},{"t":"text","v":" - initial nozzle tip cleaning for leftover material from the last print","b":false,"i":false}]},{"children":[{"t":"text","v":"Purge flow throughout cycle","b":true,"i":false},{"t":"text","v":" - the flow-percentage SSDs now apply throughout the purge cycle, not just startup and initial AMS purge","b":false,"i":false}]},{"children":[{"t":"text","v":"Liability acknowledgment gate","b":true,"i":false},{"t":"text","v":" - requires the user to type agree in printer notes to confirm understanding of the experimental nature of SWMC","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"9.4 Slicer compatibility","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWUDs are Orca Slicer only at Core 2 launch. Bambu Studio does not support global variables at the top of start gcode, which prevents the primary Pro feature set from running there. SSDs remain cross-compatible.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Bambu Studio Pro support is on the roadmap but is limited by BBS gcode capabilities. Any Pro feature that can be delivered through SSDs alone will land in BBS; anything requiring SWUDs stays Orca-exclusive until BBS evolves its custom gcode support.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"9.5 Status","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 2 is ","b":false,"i":false},{"t":"text","v":"current development focus","b":true,"i":false},{"t":"text","v":". Available through Dev Pack Pro. Pre-sale active at time of writing; 200 copies available.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"10. SWMCL breakouts","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWMCL (SteinWipe Motion Control Lite) is a separate lineage from the main core system. A breakout is an isolated feature set extracted from the main SWMC codebase and shipped as a standalone product.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"10.1 Why SWMCL exists","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Not every user wants the full SWMC machine preset. Some want only the pause routine. Some want only specific post-print behavior. SWMCL releases package single features from the main codebase as drop-in gcode replacements that users paste into their existing preset\u0026#39;s relevant gcode field.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"10.2 How SWMCL release names work","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWMCL breakouts do NOT follow the core lineage. Each breakout takes the date of its first release as its permanent name and stays feature-scoped forever. A new SWMCL breakout doesn\u0026#39;t inherit the Core 0, Core 1, or Core 2 name; it gets its own name.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The first SWMCL release was Apr.1.1.2025 - the SWMCL Pause Preset. That release name belongs to that feature set forever, regardless of how many Cores have shipped since.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"10.3 What SWMCL releases look like","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWMCL releases are raw gcode files, not .3mf preset packages. Users paste the gcode into the relevant field of their existing preset. This differs from the main SWMC machine preset releases, which ship as .3mf files that import cleanly as new presets.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"10.4 Current SWMCL releases","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"BBS_X1_SWMCL_Pause_Preset_Apr.1.1.2025","b":false,"i":false}]},{"children":[{"t":"text","v":"ORCA_X1_SWMCL_Pause_Preset_Apr.1.1.2025","b":false,"i":false}]},{"children":[{"t":"text","v":"P1 variants also available","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"All four SWMCL Pause Preset variants share the same Apr.1.1.2025 core name because they\u0026#39;re the same feature set in different slicer or printer forms. Future SWMCL breakouts will each get their own name.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"10.5 Historical note","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Apr.1.1.2025 SWMCL Pause Preset was the first field test of SSDs. The SSD architecture was proven on the small Pause Preset feature set before rolling out across the full SWMC codebase in Core 1 three weeks later. The small scope made the SSD mechanism easier to validate, debug, and refine before committing to it across the entire machine preset.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"11. How to choose a core","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"With three cores in production (Core 0 stable, Core 1 stable, Core 2 developing), users have real choices. Here\u0026#39;s how to think about it.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"11.1 If you want maximum stability","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Stay on ","b":false,"i":false},{"t":"text","v":"Core 0 (Feb.15.2.2025)","b":true,"i":false},{"t":"text","v":". This release has been in production for nearly a year at the time of writing. Every bug that\u0026#39;s going to surface has surfaced. The feature set is narrower than Core 1 but every feature is proven.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Trade-off: the configuration experience is code-editing. You\u0026#39;ll be flipping {if true} to {if false} in the gcode to toggle features. Worth it if you value stability over configurability.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"11.2 If you want the full feature set with easy configuration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Use ","b":false,"i":false},{"t":"text","v":"Core 1 (Apr.28.1.2025)","b":true,"i":false},{"t":"text","v":". This is the current recommended version for most users. All the features from Core 0 plus 30+ additional SSDs. Configuration through printer notes keywords; no code editing required.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Trade-off: not quite as settled as Core 0. Most bugs have been ironed out through nearly a year of field use, but Core 1 is newer than Core 0 by definition.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"11.3 If you want the newest features and are comfortable with experimental releases","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Use ","b":false,"i":false},{"t":"text","v":"Core 2 (Apr.28.1.2026)","b":true,"i":false},{"t":"text","v":" via Dev Pack Pro. Primetowerless AMS, ProTab integration, SWUD numeric tuning, production mode, and many new SSDs. Orca Slicer required for full feature set.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Trade-off: Core 2 is in active development. Users on this track are effectively beta testers. Some features are stable, some are still being refined, and the full Bambu Studio port is pending. Worth it if you want access to the cutting edge and are prepared to report bugs when you find them.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"11.4 Upgrading between cores","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"There is no automatic upgrade path between cores. Each core is a distinct release; upgrading means importing the new preset and moving any relevant configuration over. For Core 0 → Core 1, that means translating your inline toggle states into SSD keywords. For Core 1 → Core 2, that means bringing your SSD keywords forward and optionally tuning SWUDs.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Your old preset is not deleted when you install a new one. Both can coexist in Bambu Studio or Orca Slicer. You can switch between them at slice time by selecting a different preset from the printer dropdown.","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":"Plans that are in development or on the roadmap.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.1 Near-term (Core 2 launch and post-launch)","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Orca Slicer SWMC Pro presets for both P1 Series and X1C","b":false,"i":false}]},{"children":[{"t":"text","v":"Bambu Studio Pro support where feasible (limited by BBS gcode capabilities)","b":false,"i":false}]},{"children":[{"t":"text","v":"Hardware SSDs (steinwipe_original_equipped, steinwipe_pro_equipped, chute_tab_equipped) letting users adopt SteinWipe hardware progressively; full code support for all partial combinations","b":false,"i":false}]},{"children":[{"t":"text","v":"Continued feature additions within Core 2 (the core date stays the same; version numbers increment)","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.2 Longer-term (beyond Core 2)","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"P2 Series support (planned, pending hardware availability and firmware maturity)","b":false,"i":false}]},{"children":[{"t":"text","v":"A1 Series support (planned, pending same)","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinTrack project (parked until SWMC is stable in both slicers across all three generations)","b":false,"i":false}]}]},{"type":"heading","level":4,"children":[{"t":"text","v":"12.3 What happens when the next control mechanism emerges","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The core system is designed to accommodate new cores indefinitely. If a control mechanism more powerful than SWUDs emerges - whether through slicer evolution, firmware maturation, or community innovation - that will mark Core 3. The existing cores remain in place; new work builds on the new foundation.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The project\u0026#39;s philosophy is that existing users should never be forced to upgrade. If you bought Core 0 in February 2025, Core 0 will still be Core 0 in 2035. New cores add options; they don\u0026#39;t invalidate old ones.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"13. Glossary","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All the acronyms and vocabulary in one place.","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Core","b":true,"i":false},{"t":"text","v":" (or ","b":false,"i":false},{"t":"text","v":"core family","b":true,"i":false},{"t":"text","v":") - A specific generation of SWMC defined by the way users configure it. See Section 1.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinWipe Motion Control (SWMC)","b":true,"i":false},{"t":"text","v":" - The main product; a slicer preset mod that gives users control over printer motion and startup behavior. Hardware-agnostic; works with or without the SteinWipe wiper mount.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinWipe Motion Control Lite (SWMCL)","b":true,"i":false},{"t":"text","v":" - Breakout releases; isolated feature sets from the main SWMC codebase shipped as raw gcode for drop-in installation.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinWipe Motion Control Pro (SWMCPRO)","b":true,"i":false},{"t":"text","v":" - The Core 2 release; advanced features including ProTab integration and primetowerless AMS cycles.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinSwitch","b":true,"i":false},{"t":"text","v":" - A single code switch that toggles a SWMC feature. Originated in the pre-formalization era as an inline {if true\/false} block in the gcode. Evolved into the SteinSwitch Definition in Core 1.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinSwitch Definition (SSD)","b":true,"i":false},{"t":"text","v":" - A keyword that users place in the slicer\u0026#39;s printer notes field to enable a SWMC feature. Introduced in Core 1. Cross-compatible between Bambu Studio and Orca Slicer.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinWipe User Definition (SWUD)","b":true,"i":false},{"t":"text","v":" - A global variable at the top of the start gcode that gives users numeric parameter control. Introduced in Core 2. Orca Slicer only at launch.","b":false,"i":false}]},{"children":[{"t":"text","v":"Dev Pack 2025","b":true,"i":false},{"t":"text","v":" - The product line for Cores 0, 1, and SWMCL breakouts. Renamed from \u0026quot;Dev Pack\u0026quot; at the Core 2 launch.","b":false,"i":false}]},{"children":[{"t":"text","v":"Dev Pack Pro","b":true,"i":false},{"t":"text","v":" - The product line for Core 2 and SteinWipe Pro hardware. Includes all Dev Pack 2025 files at no extra cost.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinWipe Original","b":true,"i":false},{"t":"text","v":" - Wiper pad assembly only; no tab.","b":false,"i":false}]},{"children":[{"t":"text","v":"SteinWipe Pro","b":true,"i":false},{"t":"text","v":" - The hardware evolution of the wiper assembly. Includes wiper pad, ProTab (wiper mount on rear wall), and optional Chute Tab. Renamed from \u0026quot;SteinWipe V2\u0026quot; in December 2025.","b":false,"i":false}]},{"children":[{"t":"text","v":"ProTab","b":true,"i":false},{"t":"text","v":" - The rear-wall-mounted wiper fixture introduced with SteinWipe Pro. Available as Smooth or Grip (laser-textured) variants.","b":false,"i":false}]},{"children":[{"t":"text","v":"Chute Tab","b":true,"i":false},{"t":"text","v":" - Purge chute mount accessory for P1 and X1C printers.","b":false,"i":false}]},{"children":[{"t":"text","v":"{template_custom_gcode}","b":true,"i":false},{"t":"text","v":" - The reusable wipe macro introduced in Core 0. Every gcode section that needs a wipe cycle calls this macro instead of duplicating scrub code.","b":false,"i":false}]},{"children":[{"t":"text","v":"printer_notes =~","b":true,"i":false},{"t":"text","v":" - The regex-based keyword detection pattern that makes SSDs work. Detects whether a specific keyword is present in the slicer\u0026#39;s printer notes field and branches the gcode accordingly.","b":false,"i":false}]},{"children":[{"t":"text","v":"global variable_name = value","b":true,"i":false},{"t":"text","v":" - The SWUD declaration syntax. Placed inside the User Config section at the top of the start gcode.","b":false,"i":false}]}]},{"type":"heading","level":2,"children":[{"t":"text","v":"14. Reference links","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"","b":false,"i":false},{"t":"link","v":"Leckiestein main project page","url":"https:\/\/leckiestein.com","target":""},{"t":"text","v":"","b":false,"i":false}]},{"children":[{"t":"text","v":"","b":false,"i":false},{"t":"link","v":"Release page listings","url":"https:\/\/leckiestein.com\/collections","target":""},{"t":"text","v":"","b":false,"i":false}]},{"children":[{"t":"text","v":"","b":false,"i":false},{"t":"link","v":"Leckiestein Discord","url":"https:\/\/discord.com\/invite\/leckiestein","target":""},{"t":"text","v":"","b":false,"i":false}]}]},{"type":"heading","level":2,"children":[{"t":"text","v":"15. Credits","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The SteinWipe project is a community effort. Direct contributors named in the codebase or documentation include:","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"endernerd","b":true,"i":false},{"t":"text","v":" (Leckiestein Discord) - cracked multiline regex support in Bambu Studio and Orca Slicer, enabling the entire SSD system and making Core 1 possible","b":false,"i":false}]},{"children":[{"t":"text","v":"Reiny","b":true,"i":false},{"t":"text","v":" - suggested link_mech_test_to_scan_first_layer","b":false,"i":false}]},{"children":[{"t":"text","v":"begna112","b":true,"i":false},{"t":"text","v":" - suggested ignore_fan_cover_alarm","b":false,"i":false}]},{"children":[{"t":"text","v":"OldSalty3D","b":true,"i":false},{"t":"text","v":" - 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 Apr.28.1.2025 Start G-code)","b":false,"i":false}]},{"children":[{"t":"text","v":"TeaThistle","b":true,"i":false},{"t":"text","v":" - suggested manual_ams for multi-material printing without an AMS","b":false,"i":false}]}]},{"type":"paragraph","children":[{"t":"text","v":"And every Tier 2 and Tier 3 Patron who field-tested beta releases across every core transition from January 2025 through Core 2 development. Without consistent community testing, SWMC wouldn\u0026#39;t have shipped a single stable release.","b":false,"i":false}]}]
[]