1 / 2
Salad Fork Nozzle Wiper — zdjęcie 1
1 / 2

Salad Fork Nozzle Wiper

Zamów wydruk tego modelu

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
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

Amazon

M3 hex nut (M3-0.5, stainless)

1

Amazon

M3x16 BHCS or SHCS

1

Amazon

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

  1. Print the mount and insert the M3 nut into the side of the front bed extrusion. 

  2. Attach the mount to the front of the bed with the M3x16 screw.

  3. Clean the mount surface with IPA, then stick the silicone wiper pad onto it using its adhesive backing.

  4. Add the macro below to your Klipper config (e.g., printer.cfg or a macros.cfg include) 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:

  1. Home all axes (G28).

  2. 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 adjust X_START and WIPE_Y to match your install.

  3. 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.

  4. 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.

  5. Check your Klipper axis limits. The macro moves to negative Y and negative Z, so position_min in [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.

  6. 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>

Tagi