Enhance your 3D printing experience on the Ender 3 S1 Pro with s1pper macros. These custom macros replace the default Creality and Cura macros, bringing in adaptive bed mesh calibration and a dynamic purge line that scales with your print size for a smarter, cleaner start to every print.
Follow these steps to get s1pper macros running on your setup:
Install Script:
- Download the
KlipperPrintArea.pyfile from this repository. - Move
KlipperPrintArea.pyto your Cura Slicer scripts folder.
Update Printer Settings in Cura:
- Replace the existing Start G-Code with the following:
S__PRINTER_START EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} AREA_START=%MINX%,%MINY% AREA_END=%MAXX%,%MAXY%- Replace the existing End G-Code with the following:
S__PRINTER_END- Copy the entire
s1pperfolder to your printer's configuration directory - Open
printer.cfgon your printer - Add the following line to include s1pper macros:
[include s1pper/s1pper.cfg]- Save the file and restart your printer firmware
Adaptive Bed Mesh Calibration:
- Dynamic mesh probing based on actual print area (saves time on small prints)
- Configurable mesh offset (5.0mm default, adjustable in macro)
- Probe count scales with print size (minimum 4x4, configurable)
- Supports both bicubic and lagrange algorithms
- 2 samples per probe point for accuracy (adjustable)
Intelligent Purge Line:
- Dynamically scales to 1.5x your print area height
- Minimum 50mm purge ensures adequate priming
- Automatically capped at bed maximum (220mm Y-axis)
- Proportional extrusion based on purge length
- Starts near print area for efficient workflow
- Dual-pass purge for consistent flow
Smart Print Start Sequence:
- Homes all axes
- Preheats bed and extruder to target temperatures
- Performs adaptive mesh calibration for print area
- Executes dynamic purge line
- Resets extruder position and Z-height
- Ready to print!
Configuration:
- Pressure advance enabled (0.04 default, tunable)
- Default temperatures: 190°C extruder / 60°C bed
- Material profiles from slicer override defaults
- Works with Cura's KlipperPrintArea.py script
Adapts the original automesh script by ChipCE to accommodate a dynamic purge line near the mesh area, scaling with print size. This macro calculates mesh points based on the print area and ensures an optimized bed mesh calibration for each print.
Prints a custom purge line near the mesh area to ensure a clean start for every print. This macro dynamically calculates the extrusion length and travel distance based on the print area, aiming to extrude between 5-15mm of filament per pass.
Preheats the printer to the specified or default temperatures - 60°C for the bed and 190°C for the extruder, ensuring readiness for the printing process.
Resets the extruder position to 0 and elevates the Z-axis to 2.0mm at 3000mm/min, preparing the printer for subsequent operations.
Transitions the printer head to coordinates (X=5, Y=20, Z=0.3) at 5000mm/min, establishing the start position for the purge line.
A comprehensive start macro that configures the printer for absolute positioning, resets the extruder, homes all axes, preheats the printer, triggers bed mesh calibration within the specified print area, and resets position post-purge.
A consolidated end macro, amalgamating actions from Creality and Cura with custom tweaks, to gracefully conclude the print job by turning off essential components and repositioning the print head.
Pressure advance is enabled by default in printer.cfg with a starting value of 0.04. This helps compensate for pressure buildup in the nozzle during direction changes, improving corner quality.
To calibrate pressure advance for your specific filament:
- Print a calibration test using the
TUNING_TOWERcommand:
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005- Examine the test print to find where corners look best
- Calculate the optimal value:
pressure_advance = start + (height_of_best_layer * factor) - Update the value in your
printer.cfgunder[extruder]:
pressure_advance: 0.04 # Replace with your calibrated value- Save and restart Klipper
Typical ranges:
- Direct drive extruders: 0.02 - 0.08
- Bowden extruders: 0.30 - 0.70
You can customize various parameters in the macro files:
In s1pper-automesh.cfg:
mesh_area_offset: Clearance between print area and probe area (default: 5.0mm)probe_samples: Number of samples per probe point (default: 2)min_probe_count: Minimum mesh points (default: 4x4)probe_count_scale_factor: Scales probe density (default: 1.5)min_purge_length: Minimum purge line length (default: 50mm)
In s1pper.cfg:
- Default temperatures in
S__PRINTER_PREHEAT - Start position coordinates in
S__START_POSITION - End position and retraction in
S__PRINTER_END
Discovering value in this project or employing it in a commercial setting? Your generous donation is a stepping stone to continuous improvement and open-source advocacy.
Here are some avenues to contribute:
- PayPal
- Bitcoin
bc1qhxu9yf9g5jkazy6h4ux6c2apakfr90g2rkwu45 - Ethereum
0x9f5D6dd018758891668BF2AC547D38515140460f
Your support is not just a donation, but a testament to the spirit of open-source and the extraordinary things we can achieve together.
The code within this project is licensed under the MIT License, fostering freedom of exploration and adaptation.
The accompanying documentation is protected by the CC BY-SA 4.0 License, promoting sharing and evolution of knowledge.