Happy with your Prusa printer? Earn $30 when you recommend us to your friend, family or shop with the updated Prusa Rewards Program. PS: They will get an extra Prusament spool!
Neptune 4 series printer purge bucket
32
129
1
1356
updated December 8, 2024

Description

PDF

I needed a purge bucket for my Neptune 4 printer, so I rolled up my sleeves and started drawing, it is quite simple, robust and works very well

NOTE: The screw holes on the model are a mirror reflection of the holes on the printer, by adjusting the position of the screws, you can position the part forward or backward.

Parts List :
4mm ptfe tube
2x screws for ptfe
2x m4 screw
2x m4 nyloc nut
Foil tape

Print Settings :
PETG
0.2 layer height
without support
brim 


Additional upgrade:


I added a stopper to prevent the filament from coming into the print area 

 

You can contact us if there is anything missing

 

////////////////////////////////


Config Upgrades:

[stepper_x]
rotation_distance: 40
position_max: 243

[gcode_macro RESUME]
rename_existing: BASE_RESUME
variable_zhop: 0
variable_etemp: 0
variable_color_change: 0
gcode:
  {% if printer['pause_resume'].is_paused|int == 1 %}
      SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1                                 ; enable filament sensor
      SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}         ; set timeout back to configured value
      {% if etemp > 0 %}
          SET_HEATER_TEMPERATURE HEATER=extruder TARGET={etemp|int}
          TEMPERATURE_WAIT SENSOR=extruder MINIMUM={etemp|int - 4} MAXIMUM={etemp|int + 10}  ; wait for hotend to heat back up to print temp
      {% endif %}
      RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=200                            ; go back to park position in case toolhead was moved during pause                                                                        ; enable extruder stepper motor
      G90                                                                                 ; absolute positioning
      G1 X242                                                                             ; go purge bucket
      G91                                                                                 ; relative positioning
      M83                                                                                 ; set extruder to relative mode
      m106 S255                                                                           ; set cooling fan set %100
      {% if color_change == 1 %}
        LOAD_FILAMENT_COLOR_CHANGE
      {% else %}
          G1 E80 F200
      {% endif %}                                                                         ; extrude 80mm of filament to prime the nozzle
      G4 P2000                                                                            ; wait for 2 seconds to stabilise pressure
      M204 S4000                                                                          ; wiggle movement to ensure free movement of purge
      G1 X-12 F21000
      G1 X12
      G1 X-12
      G1 X12
      G1 X-12
      G1 X12
      G1 X-12
      G1 X12
      G1 X-12
      G1 X12
      RESTORE_GCODE_STATE NAME=ZLIFT MOVE=1 MOVE_SPEED=60                                 ; restore to the zlift position above the print
      G1 X-3 Y-3 F3000                                                                    ; Undo the pause Wipe out
      G1 Z{zhop * -1} F900  
      RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60                                 ; restore to the paused position (lowers to final print location)
      M400                                                      
      SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=color_change VALUE=0      
      BASE_RESUME                                                                         ; resume print
  {% endif %}

[gcode_macro M600]
description: Pause for colour change
gcode:
  SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=color_change VALUE=1
  SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=color_change VALUE=1
  PAUSE
  UNLOAD_FILAMENT_COLOR_CHANGE
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
variable_color_change: 0
gcode:
  PAUSE_TUNE
  {% set z = params.Z|default(2)|int %}                                                   ; z hop amount 2mm
  {% if printer['pause_resume'].is_paused|int == 0 %}
      SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}                              ; set z hop variable for reference in resume macro
      SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}    ; set hotend temp variable for reference in resume macro
      SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0                                  ; disable filament sensor
      SAVE_GCODE_STATE NAME=PAUSE                                                          ; save the current print position for resume, before z-hop
      BASE_PAUSE                                                                           ; pause print
      G91                                                                          
      {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %}       ; check that zhop doesn't exceed z max
          G1 E-2 F2700                                                                     ; Retract 2mm
          G1 X3 Y3 F3000                                                                   ; Wipe out
          G1 E-2 Z{z} F1600                                                                ; Retract 2mm more & raise z by z hop amount
          SAVE_GCODE_STATE NAME=ZLIFT                                                      ; save the current print position for resume, after z-hop
      {% else %}
          { action_respond_info("Pause zhop exceeds maximum Z height.") }                  ; if z max is exceeded, show message and set zhop value for resume to 0
          SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
          G1 E-2 F2700                                                                     ; Retract 2mm
          G1 X3 Y3 F3000                                                                   ; Wipe out
          G1 E-2 F1600                                                                     ; Retract 2mm more
          SAVE_GCODE_STATE NAME=ZLIFT
      {% endif %}
      G90
      #G1 X{% if color_change == 1 %}242{% else %}{printer.toolhead.axis_minimum.x+5}{% endif %} Y{printer.toolhead.axis_maximum.y-5} F6000 ; park toolhead
      #G1 X{printer.toolhead.axis_minimum.x+5} Y{printer.toolhead.axis_maximum.y} F6000    ; park toolhead at the rear left of the bed
      G1 X242 Y220 F6000                                     ; park toolhead at the rear right of the bed
      SAVE_GCODE_STATE NAME=PAUSEPARK                                                      ; save the parked position
      SET_HEATER_TEMPERATURE HEATER=extruder TARGET=200                                    ; cool down hotend to no-drip temp      
      SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=color_change VALUE=0                         ; reset color change state      
      SET_IDLE_TIMEOUT TIMEOUT=43200                                                       ; set idle timeout to 12 hours (in seconds)
  {% endif %}

[gcode_macro UNLOAD_FILAMENT_COLOR_CHANGE]
variable_unload_distance:  70
variable_purge_distance:  15
gcode:
  SET_HEATER_TEMPERATURE HEATER=extruder TARGET=230
  TEMPERATURE_WAIT SENSOR=extruder MINIMUM={230-4} MAXIMUM={230+40}
  {% set speed = params.SPEED|default(300) %}
  {% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity  * 30 %}
  SAVE_GCODE_STATE NAME=unload_state
  G91
  G92 E0
  G1 E{purge_distance} F{speed}                ; purge
  G1 E-{unload_distance} F{speed}      ; fast-unload
  RESTORE_GCODE_STATE NAME=unload_state
  
[gcode_macro LOAD_FILAMENT_COLOR_CHANGE]
variable_load_distance:  70
variable_purge_distance:  50
gcode:
  {% set speed = params.SPEED|default(300) %}
  {% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity  * 30 %}
  SAVE_GCODE_STATE NAME=load_state
  G91
  G92 E0
  G1 E{load_distance} F{max_velocity}          ; fast-load
  G1 E{purge_distance} F{speed}                ; purge
  RESTORE_GCODE_STATE NAME=load_state

Tags



Model origin

The author marked this model as their own original creation.

License