Salad Fork Nozzle Wiper
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
This is a nozzle wiper made to sit at the very front of the bed and work with the Bambu Labs A1 Silicone Wipers.
- Ocena
- 0 / 5
- Polubienia
- 5
- Pobrania
- 5
- Wydruki
- 0
- Wyświetlenia
- 108
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Voron Parts & Upgrades
- Licencja
- Creative Commons — Attribution
Salad Fork Front-Mounted Nozzle Wiper
A simple front-of-bed nozzle wiper mount for the Salad Fork. It holds a Bambu Lab–style silicone wiper pad so your nozzle can be cleaned automatically before a print, with no brushes, no purge buckets, and no manual picking at ooze. A Klipper macro (CLEAN_NOZZLE) is included to run the wipe routine.
Bill of Materials
Part | Qty | Link |
|---|---|---|
Bambu Lab A1 Mini silicone nozzle wiper (Howarx, 4 pcs) | 1 | |
M3 hex nut (M3-0.5, stainless) | 1 | |
M3x16 BHCS or SHCS | 1 |
The linked screws are SHCS, but BHCS of the same length work fine.
Print Settings
Material: ASA/ABS recommended. Any filament with even higher heat resistance is better still.
Layer height: 0.2 mm
Walls: 4
Infill: 30–40% (gyroid or grid)
Supports: None
Top/Bottom Layers: 5
⚠ Do NOT print this in PLA or PETG. The mount touches the heated bed directly. PLA and PETG will soften, warp, or creep at bed temperatures, and your wiper can shift out of position. If that happens, your carefully tested wipe coordinates are no longer accurate, and the nozzle can crash into the bed or the mount.
Installation
Print the mount and insert the M3 nut into the side of the front bed extrusion.
Attach the mount to the front of the bed with the M3x16 screw.
Clean the mount surface with IPA, then stick the silicone wiper pad onto it using its adhesive backing.
Add the macro below to your Klipper config (e.g.,
printer.cfgor amacros.cfginclude) and restart Klipper.
⚠ IMPORTANT: Verify Your Coordinates Before Running the Macro
The coordinates in this macro match MY printer and MY mount position. Yours will almost certainly be different. The wipe height is set below bed zero (WIPE_Z = -0.718) so the nozzle drags through the silicone. If your pad is in a different spot, or your X/Y values are off, the nozzle can crash straight into your bed or the mount.
Before running CLEAN_NOZZLE for the first time:
Home all axes (
G28).Move to the wiper with plenty of Z clearance, for example
G1 X10 Y-22 Z10 F3000. Check by eye that the nozzle is centered over the start of the pad, and adjustX_STARTandWIPE_Yto match your install.Jog along X to
X_END(e.g.,G1 X37) at the same safe height and confirm the whole travel stays over the pad. The nozzle should never pass over bare bed or the edge of the mount.Step Z down slowly, in small increments, until the nozzle just presses into the silicone. Use that value for
WIPE_Z. The nozzle should flex the silicone slightly, not bury itself in it.Check your Klipper axis limits. The macro moves to negative Y and negative Z, so
position_minin[stepper_y]and[stepper_z]must allow those moves. Otherwise Klipper will throw a "move out of range" error. Only lower these limits as far as you actually need.Do a first test run with your hand on the e-stop, and ideally with the nozzle cold so nothing gets smeared.
Re-check these steps any time you remount the wiper or replace the pad.
Klipper Macro
[gcode_macro CLEAN_NOZZLE]
description: Wipe nozzle on fixed brush at X10-X37 Y-22
gcode:
{% set WIPE_COUNT = params.WIPE_COUNT|default(5)|int %}
{% set WIPE_TEMP = params.TEMP|default(150)|int %}
{% set APPROACH_Z = params.APPROACH_Z|default(5)|float %}
{% set WIPE_Z = -0.718 %}
{% set CLEARANCE_Z = 10 %}
{% set X_START = 10 %}
{% set X_END = 37 %}
{% set WIPE_Y = -22 %}
{% set TRAVEL_F = 6000 %}
{% set PLUNGE_F = 600 %}
{% set WIPE_F = 6000 %}
{% set ORIGINAL_TARGET = printer.extruder.target %}{% if "xyz" not in printer.toolhead.homed_axes %}
{ action_raise_error("Must home XYZ before CLEAN_NOZZLE") }
{% endif %}
SAVE_GCODE_STATE NAME=CLEAN_NOZZLE_STATE
M109 S{WIPE_TEMP} ; ensure nozzle is soft enough to wipe, waits only if needed
G90 ; absolute positioning
G1 X{X_START} Y{WIPE_Y} Z{APPROACH_Z} F{TRAVEL_F} ; move above wiper
G1 Z{WIPE_Z} F{PLUNGE_F} ; engage wipe height
{% for i in range(WIPE_COUNT) %}
G1 X{X_END} Y{WIPE_Y} F{WIPE_F}
G1 X{X_START} Y{WIPE_Y} F{WIPE_F}
{% endfor %}
G1 Z{CLEARANCE_Z} F{PLUNGE_F} ; clear the bed before anything else
M104 S{ORIGINAL_TARGET} ; restore whatever temp/state it was in before (0 = off, stays off)
RESTORE_GCODE_STATE NAME=CLEAN_NOZZLE_STATE</code></pre><h4>Usage</h4><ul><li><p><code>CLEAN_NOZZLE</code> runs 5 wipes at 150°C.</p></li><li><p><code>CLEAN_NOZZLE WIPE_COUNT=8 TEMP=170</code> runs 8 wipes at 170°C.</p></li><li><p><code>APPROACH_Z</code> sets the height the nozzle travels to before plunging onto the pad (default 5 mm).</p></li></ul><p>The macro checks that the printer is homed, heats the nozzle to the wipe temperature than, wipes back and forth across the pad, lifts clear, and then restores your original nozzle temperature. If the heater was off, it stays off.</p><p><strong>Tip:</strong> Call <code>CLEAN_NOZZLE</code> in your <code>PRINT_START</code> macro after homing and before bed mesh or probing, so the nozzle is clean when it touches the bed.</p>