The P1/X1 SteinWipe Project Log
[{"type":"heading","level":2,"children":[{"t":"text","v":"The SteinWipe Project Log","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A chronological history of the SteinWipe project; from a single CAD scan in late 2024 to the SWMC Pro release of 2026. This log is here for two reasons. First, to give credit; this project would not exist without the early Patreon supporters, the Discord community, and the contributors whose names appear throughout these entries. Second, to keep the history honest; what follows is the actual development path, including the wrong turns, the moments where something broke and we figured out why together, and the small architectural decisions that turned out to matter much more than they looked like at the time.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This log covers the founding era through SWMC Pro launch. Future entries will be added through a separate system.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"Pre-history (October and November 2024)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Leckiestein YouTube channel and Patreon launch in early November 2024. The first project on the channel is SteinTrack, a modular drawer organization system originally built for personal use that goes viral on YouTube Shorts. Within thirty days the introductory video accumulates almost 650,000 views and the Patreon community grows from zero to roughly fifty members.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"There is no SteinWipe yet. There is no Bambu printer modification project at all. Just a 3D printing organization system and a small but rapidly growing community of supporters who like clean, parametric, well-organized solutions to small problems.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"That growing audience matters. By the time SteinWipe is announced a few weeks later, there is already a community in place to test it, fund the X1C development hardware, and provide the early feedback that shapes the project\u0026#39;s direction.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The birth of SteinWipe (December 2024)","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 3 2024 - The first hint","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"In a SteinTrack update post on Patreon, a brief paragraph mentions that \u0026quot;the number one request I\u0026#39;ve received for my channel is a tutorial on setting up mid-print nozzle wiping for the Bambu P1 series printers.\u0026quot; The post promises a coming video that will include the wiper mount STL files, a plug-and-play printer profile, and gcode files for users who want to tinker.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This is the first public mention of what will become SteinWipe. The framing at this point is \u0026quot;tutorial with included files,\u0026quot; not \u0026quot;ongoing project.\u0026quot; The scope is one video, one set of files, done.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 16 2024 - Pause for travel, then back to work","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A short update post explains that development has paused for a family trip; work resumes on Dec 20.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 20 2024 - The first release","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The P1 SteinWipe drops as a paid Patreon listing at $13. The package includes the wiper mount STL files, a startup gcode file with 8 toggleable features baked in (the first SteinSwitches, though the term has not been formalized yet), Bambu Studio and Orca Slicer variants of the gcode, and a custom pause routine being prepared for separate release.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The marketing language uses the phrase \u0026quot;SteinSwitch options\u0026quot; for the first time, describing them as \u0026quot;toggle 8 options to fine-tune your printer\u0026#39;s startup routine to fit your needs perfectly without knowing anything about G-code.\u0026quot;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Critical context: at this point the only printer being supported is the P1S non-AMS configuration. The X1C does not exist in the project yet; AMS support does not exist; Bambu Studio support is partial. SteinSwitches are not yet a real feature toggle system; they are conditional code blocks the user enables by editing the gcode itself.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 22 2024 - Master Class poll","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Two days after release the response is strong enough that the idea of a deeper-dive G-code Master Class video is floated to the community. 94% of poll respondents want it. Plans for the video are set in motion.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 24 2024 - First patch","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A small patch addresses slicer parsing errors with long_retractions_when_cut. The era of post-release maintenance begins.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 29 2024 - SteinSwitch demo video","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A demonstration video showing the SteinSwitch system goes live. This is the first time the SteinSwitch concept is presented to a general audience as a feature rather than a configuration trick.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 30 2024 - AMS development begins","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Development of P1 Series AMS support begins. This is a significant undertaking; AMS material change cycles are entirely different from non-AMS startup gcode and require new architecture, new tool change handling, and new purge management.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The first growth phase (January 2025)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"January 2025 is when SteinWipe stops being a \u0026quot;tutorial with files\u0026quot; and starts being an ongoing project. Three things happen this month that change the trajectory.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 2 2025 - Pause routine integration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The custom pause routine that was being prepared in late December integrates with the layer slider feature. Users can now place pauses at specific layers without manually editing layer-change gcode. This is the first standalone breakout feature; the seed of what will eventually become the SWMCL system.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 5 2025 - First AMS Beta","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The P1 Series AMS Beta release ships for Orca Slicer. SteinSwitch options expand from 8 to 15. This is the first full-coverage release; startup, AMS material change, and end gcode are all included. The community reception is strong but the release has rough edges; users find issues, feedback comes back fast, and changes are pushed almost daily.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 6 2025 - AMS Beta works in BBS","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"One day after Orca, the AMS Beta works in Bambu Studio. Cross-slicer parity becomes a project goal from this point forward.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 8 2025 - Stored PA in BBS","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A small but important change; the original P1 file is updated to read true PA results from BBS\u0026#39;s stored PA value, eliminating a class of edge-case PA mismatches.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 9 2025 - X1C development starts","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Patron pre-purchases of the X1C SteinWipe listing (before any X1C files exist) fund the purchase of an X1C development machine. Without this, X1C support would have been delayed indefinitely; with it, X1C development starts almost immediately.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This moment is worth highlighting because it shapes the project\u0026#39;s funding model going forward. Pre-purchases of future releases become a recognized way for the community to directly enable specific development work.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 12 2025 - First X1C BBS profile","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The first X1C-targeted Bambu Studio machine profile 3MF beta ships. This is six weeks after the project\u0026#39;s first public mention; in that span SteinWipe goes from \u0026quot;P1S non-AMS only\u0026quot; to \u0026quot;two printers, two slicers, AMS support.\u0026quot;","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 14 2025 - P1 AMS code structure finalized","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The P1 AMS code reaches what is judged to be a stable structural form. Documentation work begins; the first product manual is started.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 15 2025 - First X1C Orca soft release ([[Jan.15.1.2025]])","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The X1C Orca SteinWipe ships as a soft release for Patrons. Internally this is the first version to carry a date-stamped version code; the format of Month.Day.Version.Year is established here. Significant changes in this release: startup code restructured for the X1C\u0026#39;s hardware differences, sensor code deconstructed and rebuilt, and the infamous \u0026quot;hockey stick\u0026quot; PA test pattern replaced with a proper PA line.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 16 2025 - Official X1C launch","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The X1C SteinWipe launches publicly with AMS support. Two day-of-launch issues are addressed: a print-head and camera lift conflict is resolved, and the PA line is moved over the QR code zone for safety. The QR code area is the only zone on the build plate where the PA line can sit without risking the print.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 19 2025 - Dynamic nozzle calibration","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"All start gcodes are updated to dynamically calculate values for different nozzle sizes. Users no longer need separate gcode files per nozzle diameter; one file handles 0.2mm, 0.4mm, 0.6mm, and 0.8mm correctly.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 20 2025 - Discord opens","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Patreon Discord integration goes live. By Jan 21 almost half of the supporting tiers have linked their accounts. The Discord becomes the primary venue for technical discussion, bug reporting, and community feedback going forward. The transition is judged \u0026quot;MUCH more organized\u0026quot; and feedback velocity increases noticeably.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 22 2025 - First IP defense","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A serious moment. Someone takes the SteinWipe design and licenses it under their own name elsewhere. The Jan 22 post addresses the violation directly; reports the infringement, asks the community to flag any similar designs they encounter, and reaffirms the licensing terms that protect the project.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This is also the post where the phrase \u0026quot;this community and its exclusive projects has grown beyond what I thought possible\u0026quot; appears for the first time. The community shape of the project starts to harden into something less like \u0026quot;creator and customers\u0026quot; and more like \u0026quot;creator and collaborators.\u0026quot;","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Jan 25 2025 - [[Jan.25.1.2025]] release","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Jan.25.1.2025 release ships for Orca Slicer on both P1 and X1 platforms. This is the second formally version-coded release in the SteinWipe project. The lineage from Jan.15 through Jan.25 establishes that releases will carry their date as their permanent core name and that subsequent versions inside a core family carry incrementing version numbers.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The Core 0 era ([[Feb.15.2025]])","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Why \u0026quot;Core 0\u0026quot; is the starting point of the formal lineage","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The releases between December 2024 and early February 2025 are real, shipped, and used by paying customers. But they predate the formalized testing methodology, the cross-slicer parity requirement, and the version naming system that defines the project from Feb 15 onward. The Jan.15 and Jan.25 releases inherited their version codes retroactively when the system was formalized; at the time of release they were just \u0026quot;the January 15 X1C Orca file\u0026quot; and \u0026quot;the January 25 file.\u0026quot;","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 0 is the first formally named release. Earlier development builds from late 2024 and early 2025 laid the groundwork; Core 0 is where the lineage that customers interact with through product listings begins.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"By the time Core 0 ships in February, the project also has full hardware test coverage; both the X1C and P1S are running AMS units in the Leckiestein workshop, and every release from this point forward is tested across both platforms before public release.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Feb 15 2025 - [[Feb.15.1.2025]] beta","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 0 ships as a beta release. The architecture introduces six discrete gcode field outputs in Bambu Studio (Start, End, LayerChange, ChangeFilament, Pause, TemplateCustomGcode) plus the corresponding fields in Orca. The Template Custom Gcode field becomes a wiper toolpath macro that other gcode fields can call as a subroutine; this is a fundamental architectural change that survives all the way through to Pro. A unified set of SteinSwitches ships across both slicers and both printers; eighteen total SteinSwitches in the Bambu Studio variant; the first cross-slicer feature parity between BBS and Orca.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Feb 15 2025 - [[Feb.15.2.2025]] stable","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The first stable release. This is the first time a SWMC release ships under the \u0026quot;stable\u0026quot; label after passing through a beta period. The pattern of beta-then-stable inside a core family establishes itself here.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The community grows","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 0 is also the era where named contributors start showing up in the project\u0026#39;s history. A handful of community members surface during this period whose contributions shape the project beyond their individual fix.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"kkirpichnikov0752","b":true,"i":false},{"t":"text","v":" identifies and systematically diagnoses a travel path bug that sends the toolhead outside the build volume during pause-and-resume cycles. The diagnosis takes weeks; the fix lands in Core 1.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"VikDawgz","b":true,"i":false},{"t":"text","v":" confirms the travel bug independently, helping nail down the exact reproduction steps.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Headrush69","b":true,"i":false},{"t":"text","v":" discovers a 0.5mm increment limitation in the offset calibration system. This ends up driving a complete rewrite of the calibration workflow in Mar 2025.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"NAG FAB","b":true,"i":false},{"t":"text","v":" identifies a retraction mismatch and prototypes a Template Custom Gcode-based solution for it. The prototype becomes the basis for how Template Custom Gcode is used as a macro substrate in Core 1.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Maskedman123","b":true,"i":false},{"t":"text","v":" validates the Template Custom solution across a range of print scenarios.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"OldSalty3D","b":true,"i":false},{"t":"text","v":" suggests the ignore_fan_cover_alarm SteinSwitch and tests the M630 gcode underlying it. This ships as an SSD in Core 1.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The SWMCL breakout ([[Apr.1.1.2025]])","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Apr 1 2025 - The first SWMCL release","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The SteinWipe Motion Control Lite (SWMCL) Pause Preset ships. This is the first standalone breakout release; a single feature pulled out of the main SWMC codebase and shipped as a focused, single-purpose preset.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The pause preset answers a specific user need; not everyone running a Bambu wants the full SWMC machine preset, but many users want a better pause routine. SWMCL gives them one. The Pause Preset takes its release date as its permanent core name (Apr.1.1.2025) and stays feature-scoped from that point forward; it does not progress through the Core 0 \/ 1 \/ 2 lineage.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This release is also the first field test of the SteinSwitch Definition (SSD) architecture. The Pause Preset uses keyword-based feature toggles in the printer notes field, rather than the in-code conditional toggles of Core 0. The architecture works. Three weeks later, the SSD system rolls out across the full SWMC codebase.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The Core 1 era ([[Apr.28.2025]])","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Why Core 1 happened when it did","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The shift from Core 0 to Core 1 was driven by a single architectural insight; if the SSD pattern that just worked in the SWMCL Pause Preset can be applied to the full SWMC codebase, users no longer need to edit gcode at all. They configure features by adding keywords to printer notes and the gcode reads those keywords at slice time.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This is a significant change in user experience. Core 0 users edit conditional {if true\/false} blocks inside the gcode itself; one mistake breaks the file. Core 1 users edit a text field in their slicer\u0026#39;s printer profile; the worst case is a typo that fails to enable a feature.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Apr 28 2025 (target date) and Apr 30 2025 (actual ship) - [[Apr.28.1.2025]] beta for X1","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The X1 Bambu Studio variant of Core 1 ships first. Notes that ship with this release flag it as a \u0026quot;fundamental change introducing SteinSwitch Definitions.\u0026quot; The release expands to seven gcode files (adding TimeLapseGcode to the Core 0 set of six) and includes substantially more SSDs than Core 0 had SteinSwitches.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"About the date discrepancy; core dates are target dates, not absolute ship dates. The Apr.28.1.2025 file shipped on Apr 30 2025. The core date stays Apr.28 because that is when the development build was tagged and the file naming was committed to.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The slow rollout to Orca and P1","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Core 1 takes time to roll out across all four slicer-and-printer combinations. BBS X1 ships Apr 30 2025 (the first Core 1 file). BBS P1 ships shortly after under the same Apr.28.1 core date. ORCA P1 ships within the same window. ORCA X1 takes substantially longer; the first Orca X1 Core 1 file does not ship until Feb 21 2026.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Orca X1 delay comes from a combination of factors. The Orca codebase has additional gcode hooks (BeforeLayerChangeGcode, ExtrusionRoleGcode) that need to be addressed in the SSD architecture. The Apr.28.2.2025 dev release for Orca X1 hits a 40KB file size limit that prevents the file from saving to Bambu\u0026#39;s cloud sync; this issue surfaces SWUDs as a possible solution and starts the architectural thinking that will eventually lead to Core 2.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The Core 1 community contributions","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Several SSDs in Core 1 trace back to specific community members.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"endernerd","b":true,"i":false},{"t":"text","v":" cracks the multiline regex pattern that lets the SSD system work in both Bambu Studio and Orca. Without this, the SSD system as it ships would have been Orca-only. This is the single largest community contribution to the project\u0026#39;s architecture; it makes Core 1 cross-slicer parity possible.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Reiny","b":true,"i":false},{"t":"text","v":" suggests link_mech_test_to_scan_first_layer, which ships in Core 1.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"begna112","b":true,"i":false},{"t":"text","v":" suggests ignore_fan_cover_alarm, which along with OldSalty3D\u0026#39;s testing makes the alarm suppression feature shippable.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Maunose","b":true,"i":false},{"t":"text","v":" identifies a textured PEI plate nozzle-to-plate touch issue that drives the per-plate offset architecture seeded in Core 1 and fully realized in Pro\u0026#39;s SWUD system.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"TeaThistle","b":true,"i":false},{"t":"text","v":" suggests manual_ams, a feature for users running AMS-style behaviors without an actual AMS unit.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Core 1 SSD count by release","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Core 1 SSD count grows as releases ship and contributions land. The X1 BBS Apr.28.1.2025 release ships with 43 SSDs; later updates within the Core 1 family extend this. The matching P1 BBS release ships at the same SSD count.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The offset calibration system rewrites (Mar to Jul 2025)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The offset calibration system is one of the only parts of SWMC that has gone through three complete rewrites. Each rewrite traces directly to community feedback.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"V1 - The original (late 2024)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Primitive. A single gcode program moves the toolhead to the final checking position. Binary outcome; either the nozzle aligns with the wiper, or it does not. There is no offset input anywhere in SWMC at this point; if alignment is off, users have two options. They reprint the wiper model with corrected geometry (some users edit the STL directly to shift the wiper pad holder position), or they live with the misalignment and watch wiper pads get destroyed.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This is the era when early users sometimes recall \u0026quot;destroying several wiper pads before I figured it out.\u0026quot;","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"V2 - [[Mar.20.2025]] (the 0.5mm limitation rewrite)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"After Headrush69\u0026#39;s 0.5mm increment limitation discovery, the calibration system gets its first real rewrite. The new version uses an iterative narrowing approach with multiple gcode programs of different step sizes; users run one, observe alignment, run a finer-step program if needed.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This works much better than V1 but still has rough edges. The step size choices are arbitrary; users with specific alignment offsets can find themselves caught between two step sizes that bracket their actual offset.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"V3 - The current system (mid-2025)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The third rewrite uses a continuous offset input rather than discrete step sizes. Users measure their alignment offset directly and enter it into a single SWUD or printer note value. The calibration program reads the input and adjusts. No more bracket-and-narrow workflow.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"V3 ships alongside Core 1 and continues into Pro.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The rest of 2025 (Summer through Fall)","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The summer and fall of 2025 are a maintenance and incremental improvement period. The Core 1 codebase is stable; the SSD count grows steadily through community contributions and Leckiestein\u0026#39;s own additions. SWMCL Pause Preset stays in service unchanged. The Orca X1 port remains in development.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A few notable moments in this period.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"June 2025 - Reverse-direction AMS routing","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The ams_reverse_wipe_detour SSD ships, addressing an edge case in AMS routing for prints with specific geometric constraints. This SSD is requested by Discord users running multi-plate AMS prints with non-standard routing requirements.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"August 2025 - Feature-pill thinking","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The function-pill registry concept emerges in this period as a way to communicate features visually on product photos. Each release gets assigned a set of pills describing its capabilities; the pills become a way to quickly compare what a release offers versus what an upgrade would add.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"October 2025 - SteinWipe V2 development","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Hardware development on what will become SteinWipe Pro starts. The original SteinWipe wiper mount has limitations that the V2 design addresses; a wider footprint for stability, integrated channels for the laser-textured grip variant, and a redesigned tab geometry that supports the upcoming primetowerless AMS sequence. At this point the hardware is still called \u0026quot;SteinWipe V2\u0026quot; internally.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Dec 18 2025 - The SteinWipe V2 to SteinWipe Pro rename","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SteinWipe V2 is renamed SteinWipe Pro. The new name reflects the relationship to Dev Pack Pro and SWMC Pro that is being planned for 2026; the hardware, software, and product packaging will all share the \u0026quot;Pro\u0026quot; framing.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This rename happens before any Pro-tier products ship. It positions the entire 2026 product line under a coherent name from launch.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"Early 2026 - The architectural pivot","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Core 1 codebase is mature by January 2026. Most user feedback has been absorbed. Most edge cases have been identified and addressed. The SSD count is in the high forties and stable. Two things drive the architectural pivot to what will become Core 2.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The Orca X1 file size problem","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Orca X1 Apr.28.2.2025 development build hits a 40KB file size limit that prevents the file from saving to Bambu\u0026#39;s cloud sync. This is not a Bambu limit; it is an Orca limit driven by how Orca handles preset sync. Below 40KB, presets sync across Orca instances on the user\u0026#39;s account. Above 40KB, they do not.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Apr.28.2.2025 build crosses that threshold because of how SSD detection logic accumulates as more SSDs are added. Each SSD requires its own regex check; each check adds a fixed amount of code to the file. Sixty-plus SSDs blows past 40KB.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The choice is between three options. Cap the SSD count at whatever fits under 40KB and stop adding features. Drop Orca cloud sync for X1 users who want the full feature set. Restructure the architecture so feature flags do not need their own regex-check overhead.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The third option is what gets pursued. The thinking is that if user-tunable values can be defined as named global variables at the top of the gcode (rather than detected via regex from printer notes), the per-feature overhead drops to almost nothing. This is the seed of the SteinWipe User Definition (SWUD) concept.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The \u0026quot;real\u0026quot; use case for variables","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Around the same time, users start asking for things SSDs cannot do well. Per-plate nozzle offset values. Custom scrub feedrates. Specific positions for the wiper mount tab on non-stock installations. These are not binary toggles; they are numeric values. The SSD architecture handles binary toggles cleanly but cannot accept \u0026quot;0.04\u0026quot; or \u0026quot;153.5\u0026quot; as input.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWUDs solve both problems at once. They replace per-feature regex overhead with a single named-variable lookup, and they accept numeric and string values that SSDs cannot.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Feb 7 2026 - The Orca rewrite","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A code rewrite addresses the AMS mapping shift bug that Orca has had since Core 1 launch (the bug where the AMS mapping shifts unexpectedly when using Orca\u0026#39;s \u0026quot;Send\u0026quot; function). The fix lands in this rewrite. The same rewrite incorporates early SWUD prototype code; the rewrite becomes the foundation that Core 2 will be built on.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Feb 21 2026 - First Orca X1 Core 1 file ships","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Almost ten months after BBS X1 Core 1 shipped, the Orca X1 Core 1 release goes live. This is the longest gap between matching slicer-and-printer variants in the project\u0026#39;s history. The delay was driven by the file size issue, the AMS mapping bug, and the architectural exploration that was happening in parallel.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Once Orca X1 Core 1 ships, the four-quadrant matrix (BBS X1, BBS P1, ORCA P1, ORCA X1) is finally complete on Core 1.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The Core 2 development period (March and April 2026)","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The \u0026quot;agree\u0026quot; gate concept","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWMC Pro is going to ship features that have not been tested as widely as Core 1\u0026#39;s feature set. The primetowerless AMS cycle, in particular, depends on filament moisture and diameter tolerance in ways that are not yet fully characterized. Some users will encounter unexpected behavior.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The decision is made to add an explicit liability acknowledgment gate. Users must add the keyword \u0026quot;agree\u0026quot; to their printer notes before Pro will produce usable gcode. Without \u0026quot;agree\u0026quot;, the sliced gcode contains a warning indicating the acknowledgment is missing. With it, the user has signaled that they understand they are running an experimental system.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The gate is not a paywall or a license check. It is a friction point that ensures users opt in consciously rather than by default. This protects users from running Pro features they did not realize were experimental, and protects the project from support requests that originate in misunderstanding the experimental nature of the release.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The continuous movement purging breakthrough","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"One of the persistent issues with Core 1\u0026#39;s purge_sidestepping SSD has been that newer Bambu Studio versions throw \u0026quot;printing out of bounds\u0026quot; errors when the slicer\u0026#39;s coordinate validation runs against the off-plate motion the feature requires. Users have to either downgrade BBS, modify their printer\u0026#39;s Printable Space setting, or accept slicer errors on every print.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Pro-era fix uses a G92\/G92.1 coordinate spoof. G92 adjusts the slicer\u0026#39;s position bookkeeping to a fake coordinate inside the plate boundary; G92.1 tells the printer to ignore the G92 and use actual physical coordinates. The slicer validator sees valid coordinates and allows the gcode through; the printer executes real off-plate motion.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This makes purge_sidestepping ship-able without user configuration changes for the first time. Core 1 users had to actively work around the slicer error; Core 2 users get clean sidestepping out of the box.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The primetowerless AMS sequence","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The primetowerless AMS feature is the most ambitious thing Pro adds. Stock Bambu AMS uses a fixed 2mm tool change retraction; this retraction undoes the careful thermal management of the cooling cycle and reintroduces air voids that the cooling cycle was supposed to eliminate. The result is that prints need a prime tower to flush the airy first centimeter of extrusion after every tool change.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The Pro sequence replaces the 2mm retraction with a coordinated dock-and-prime cycle on the ProTab. First, flush previous material at high temp and park on the chute tab. Cool the nozzle to print temp with M109 blocking and fan at 100%. Retract filament, travel to wiper, dock on the wiper mount tab. Forward filament past retraction amount; build positive nozzle pressure matching print conditions. Hold for ~300ms so pressure equalizes through the melt zone and purges micro air pockets. Retract only 0.35mm rather than the stock 2mm. Travel directly to print.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The wiper mount tab\u0026#39;s thermal mass acts as a brake on ooze during travel-to-print. The positive pressure pre-load means the small retraction is only counteracting that thermal brake, not air compensation.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"In testing with AMS2 head-dried PETG-HF, this sequence achieves up to 99% tool change reliability across extended multicolor prints. The remaining 1% of variance traces to filament moisture and diameter tolerance.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The fast boot and no-chatter system","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Two new SSDs ship in Pro that change how the startup sequence behaves.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"production_mode keeps heaters on at the end of the print and sets the hotend to 140°C hold temperature. The next print starts faster because the machine stays warm between prints. This is targeted at production print queues where users are running back-to-back prints and want to minimize warmup time.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"no_chatter_mode strips the verbose routines from the startup sequence. When enabled, startup runs minimally and lets users pick which routines to include via other SSDs as building blocks. Almost everything in the default startup can be skipped. This is powerful but inherently risky; skipping safety-critical routines can damage the printer or the print.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A third SSD, agree_chatter_on, is required to unlock the fullest no_chatter_mode customization. The agree_ prefix is intentional; this is a secondary liability acknowledgment beyond the base agree gate. The keyword only activates the extended building-block behavior for users who are members of a Discord safety-vetted group.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This three-SSD architecture (production_mode, no_chatter_mode, agree_chatter_on) keeps powerful experimental features accessible to users who want them while protecting users who would not benefit from skipping safety routines.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"SWMC Pro launch ([[Apr.28.1.2026]])","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"The Pro tier product structure","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"SWMC Pro is the Core 2 release and the most capable SWMC configuration to date. It ships under multiple product structures.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Standalone listings for X1 and P1 separately, each covering all SWMC Pro releases for that printer. Dev Pack Pro 2026 which bundles SWMC Pro with everything in Dev Pack 2025. An $18 upgrade coupon for users who already own Dev Pack 2025.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The standalone listings are for users who only want Pro on a specific printer. The Dev Pack Pro is for users who want every SWMC release across all printers and cores in a single package. The upgrade coupon recognizes that Dev Pack 2025 owners should not have to pay full price again to access Pro.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"Apr 28 2026 - P1 Series Pro ships","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The ORCA P1 SWMCPRO Machine Preset for the Apr.28.1.2026 core ships on the core date. This is the first Core 2 release; the first SWMC Pro file in the wild.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The release includes 53 SSDs covering everything from Core 1 plus the new Pro-era additions. 40 user-facing SWUDs across multiple grouped categories. The agree liability gate. Full primetowerless AMS support requiring ProTab hardware. Continuous movement purging with the G92\/G92.1 coordinate spoof. The fast boot and no-chatter SSD system.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Pro is Orca Slicer exclusive at launch. SWUDs require global variable support that Bambu Studio does not currently provide. P1 Series users on Bambu Studio continue to run SWMC Core 1.","b":false,"i":false}]},{"type":"heading","level":4,"children":[{"t":"text","v":"May 30 2026 (planned) - X1C Pro ships","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The ORCA X1 SWMCPRO Machine Preset is in final development at the time of this log entry. The X1C variant adds 7 X1C-specific hardware SSDs to the P1 release\u0026#39;s 53; total 60 SSDs.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The X1C-specific SSDs cover the hardware the P1 Series does not have. LiDAR integration (5 SSDs covering scan timing, ooze prevention, first-layer scan override, PA line placement, and build plate detection). Toolhead lighting (2 SSDs covering work light during AMS cycles and dark mode for the logo light).","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"The community at SWMC Pro launch","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"By the time SWMC Pro ships in 2026, the community shape has changed substantially from the early days. The Discord has grown to multiple hundreds of active members. The bug reporting workflow is mature; users report issues against specific core dates, and fixes ship in named version increments. Community-suggested SSDs have a clear contribution credit pattern. Discord channels exist for each core family release for targeted bug discussion.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"A few community moments worth noting from the Pro era.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The \u0026quot;agree\u0026quot; gate concept itself was discussed openly in Discord before being committed to. Users supported the idea of a friction point that ensured opt-in awareness of the experimental nature.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The agree_chatter_on Discord-vetted group structure was developed in conversation with users who specifically wanted the extended no_chatter customization. The group access requirement was the consensus solution to the \u0026quot;this is too risky for default access\u0026quot; concern.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The function-pill registry for product photos was field-tested with users on Discord before being formalized; user feedback drove the decision to grow the registry rather than swap pills between releases.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"What this log does not cover","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"This log focuses on architectural and community moments that shaped the SteinWipe project\u0026#39;s trajectory. It does not cover every SSD or SWUD added across releases (the manuals cover those exhaustively). It does not cover every Discord conversation that shaped a feature decision (most of those are still in the Discord history). It does not cover every individual user\u0026#39;s contribution (the community contributors registry in the project briefs covers named contributors; many more contributed via comments, bug reports, and feedback that did not surface as named credits). It does not cover hardware development beyond high-level milestones (specific iteration on the ProTab geometry, the wiper mount drilling template, and similar mechanical work happens between log entries).","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Future log entries (handled through a separate system) will continue to capture architectural and community moments as they happen.","b":false,"i":false}]},{"type":"heading","level":2,"children":[{"t":"text","v":"Closing notes","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The SteinWipe project is unusual in a few respects worth naming.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"First, it is community-funded in a literal sense. Pre-purchases of future releases bought the X1C development hardware. Patreon subscription tiers fund the ongoing development time. The community is not just a customer base; it is the funding source that makes the development work possible.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Second, the architectural decisions traced in this log were not pre-planned. SteinSwitches in Dec 2024 were conditional code blocks; SSDs in Apr 2025 were keyword-based detections; SWUDs in Apr 2026 were named global variables. Each evolution responded to a specific limitation users hit. None of them were sketched out in a roadmap document at the start.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Third, the named contributors throughout this log made changes to the project\u0026#39;s architecture, not just its feature set. endernerd\u0026#39;s regex work made cross-slicer parity possible. Headrush69\u0026#39;s calibration limitation discovery drove a complete rewrite. NAG FAB\u0026#39;s Template Custom prototype became the macro substrate for Core 1. These contributions are not garnishes; they are load-bearing.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"The project would not exist without the community that started forming around the SteinTrack videos in November 2024. It would not have grown into a multi-printer, multi-slicer, multi-core system without the Patreon supporters who pre-purchased X1C support before there was X1C support. It would not be at SWMC Pro today without the Discord members who tested experimental builds, reported bugs, and suggested features.","b":false,"i":false}]},{"type":"paragraph","children":[{"t":"text","v":"Thank you for being part of this.","b":false,"i":false}]},{"type":"list","listType":"unordered","items":[{"children":[{"t":"text","v":"Leckiestein","b":false,"i":false}]}]}]
[]