• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
X1/P1 Poop Chute Saver: Compact Filament Purges! 3D Printer File Image 1
X1/P1 Poop Chute Saver: Compact Filament Purges! 3D Printer File Image 2
X1/P1 Poop Chute Saver: Compact Filament Purges! 3D Printer File Thumbnail 1
X1/P1 Poop Chute Saver: Compact Filament Purges! 3D Printer File Thumbnail 2

X1/P1 Poop Chute Saver: Compact Filament Purges!

MoonTiger3D avatarMoonTiger3D

November 4, 2024

makerworld-icon
DescriptionCommentsTags

Description

Boost MeBoost me for more handy designs like this!

As many of you have, I personally struggle with the tiny space of my printer's poop chute, as large multicolor prints generate a lot of waste (even at my minimal 0.4x purge multiplier), so I looked for a better solution. When I couldn't find any, I decided to come up with one myself: A platform on which the nozzle can print that will take the filament waste (which would otherwise form a large hollow cylinder) and let it ooze onto itself, creating a perfectly compact disc/blob of filament. This can then be carried back to the filament purge chute and printing will resume as normal. This solution will immensely reduce the space taken up in poop chutes, meaning you can make many more filament swaps before having to empty out the chute.

 

How to use:

  1. Print the included model, preferably in Support for PLA/PETG, as it is less adhesive and will detach from filament purges more easily. However, I did design this (and its software) to work somewhat reliably if printed with normal PLA.
  2. Install it on the upper-right corner of the build plate, as shown in the thumbnail. The platform may slightly “scrape” against the back wall of the printer. However, no damage will be done to the module or the printer.
  3. In Bambu Studio, change the multiplier in the “Flushing volumes” tab to 0.4, ignoring the fact that some values may be “low” or red.
  4. Open the printer settings, then replace the code from the “filament change gcode” tab with the code in the linked document: https://docs.google.com/document/d/1xblITFBgRG5wZZY-zf1iNHje-FTWSMUE5b4gh7P1YQQ/edit?copiedFromTrash&tab=t.0

WARNING: Because this module is situated in the upper-right corner of the build plate, it is strongly recommended to move the prime tower during multicolor prints from its default position (also in the upper-right corner) in order to avoid collision during filament changes. This message can be ignored if the height of the overall build is less than the height of the nozzle's silicone sock.

 

Additional note: Because of the methods used in the attached gcode, there will likely be small amounts of residual filament on the nozzle after filament changes, so prime towers are recommended for optimal seam quality.

 

Full custom gcode for those of you who cannot access the linked Google Doc:

----------------------------------------------------------------------------------------------------------------

M620 S[next_extruder]A

M204 S9000

{if toolchange_count > 1 && (z_hop_types[current_extruder] == 0 || z_hop_types[current_extruder] == 3)}

G17

G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift

{endif}

G1 Z{max_layer_z + 3.0} F1200

 

G1 X70 F21000

G1 Y245

G1 Y265 F3000

M400

M106 P1 S0

M106 P2 S0

{if old_filament_temp > 142 && next_extruder < 255}

M104 S[old_filament_temp]

{endif}

{if long_retractions_when_cut[previous_extruder]}

M620.11 S1 I[previous_extruder] E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}

{else}

M620.11 S0

{endif}

M400

G1 X90 F3000

G1 Y255 F4000

G1 X100 F5000

G1 X120 F15000

G1 X20 Y50 F21000

G1 Y-3

{if toolchange_count == 2}

; get travel path for change filament

M620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0

M620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1

M620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2

{endif}

M620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}

T[next_extruder]

M620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}

 

{if next_extruder < 255}

{if long_retractions_when_cut[previous_extruder]}

M620.11 S1 I[previous_extruder] E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}

M628 S1

G92 E0

G1 E{retraction_distances_when_cut[previous_extruder]} F[old_filament_e_feedrate]

M400

M629 S1

{else}

M620.11 S0

{endif}

G92 E0

{if flush_length_1 > 1}

M83

;move to custom module

G1 Y230 F12000

G1 X210 F12000

G1 Y250 F12000

G1 Y265 F500

G1 Z4

;move to custom module

; FLUSH_START

; always use highest temperature to flush

M400

{if filament_type[next_extruder] == "PETG"}

M109 S260

{elsif filament_type[next_extruder] == "PVA"}

M109 S210

{else}

M109 S[nozzle_temperature_range_high]

{endif}

G1 E4

M106 P1 S255

G4 S10

Z5

G1 E3

M106 P1 S255

G4 S10

M106 P1 S0

G1 Z7

{if flush_length_1 > 23.7}

G1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part

G1 E{(flush_length_1 - 27.7) * 0.02} F{50*0.3}

G1 E{(flush_length_1 - 27.7) * 0.23} F{old_filament_e_feedrate*0.3}

G1 E{(flush_length_1 - 27.7) * 0.02} F{50*0.3}

G1 E{(flush_length_1 - 27.7) * 0.23} F{new_filament_e_feedrate*0.3}

G1 E{(flush_length_1 - 27.7) * 0.02} F{50*0.3}

G1 E{(flush_length_1 - 27.7) * 0.23} F{new_filament_e_feedrate*0.3}

G1 E{(flush_length_1 - 27.7) * 0.02} F{50*0.3}

G1 E{(flush_length_1 - 27.7) * 0.23} F{new_filament_e_feedrate*0.3}

{else}

G1 E{flush_length_1 - 10} F{old_filament_e_feedrate*0.3}

{endif}

; FLUSH_END

G1 E-[old_retract_length_toolchange] F1800

G1 E[old_retract_length_toolchange] F300

{endif}

 

{if flush_length_2 > 1}

 

G91

G1 Z-3 F12000; move aside to extrude

G90

M83

 

; FLUSH_START

G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_2 * 0.02} F50

G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_2 * 0.02} F50

G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_2 * 0.02} F50

G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_2 * 0.02} F50

G1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_2 * 0.02} F50

; FLUSH_END

G1 E-[new_retract_length_toolchange] F1800

G1 E[new_retract_length_toolchange] F300

{endif}

 

{if flush_length_3 > 1}

 

G91

G1 Z-3 F12000; move aside to extrude

G90

M83

 

; FLUSH_START

G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_3 * 0.02} F50

G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_3 * 0.02} F50

G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_3 * 0.02} F50

G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_3 * 0.02} F50

G1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_3 * 0.02} F50

; FLUSH_END

G1 E-[new_retract_length_toolchange] F1800

G1 E[new_retract_length_toolchange] F300

{endif}

 

{if flush_length_4 > 1}

 

G91

G1 Z-3 F12000; move aside to extrude

G90

M83

 

; FLUSH_START

G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_4 * 0.02} F50

G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_4 * 0.02} F50

G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_4 * 0.02} F50

G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_4 * 0.02} F50

G1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}

G1 E{flush_length_4 * 0.02} F50

; FLUSH_END

{endif}

; FLUSH_START

M400

M109 S[new_filament_temp]

G1 E2 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature

; FLUSH_END

M400

G92 E0

G1 E-[new_retract_length_toolchange] F1800

M106 P1 S160

 

G91

G1 Z-3

G90

M83

G4 S15

M400 S3

 

G1 Z(z_after_toolchange + 5)

 

G1 Y245 F12000

G1 X70 F21000

G1 Y265 F30000

 

G1 E-5

G1 E15

 

G1 X70 F5000

G1 X90 F3000

G1 Y255 F4000

G1 X105 F5000

G1 Y265 F5000

G1 X70 F10000

G1 X100 F5000

G1 X70 F10000

G1 X100 F5000

 

G1 X70 F10000

G1 X80 F15000

G1 X60

G1 X80

G1 X60

G1 X80 ; shake to put down garbage

G1 X100 F5000

G1 X165 F15000; wipe and shake

G1 Y256 ; move Y to aside, prevent collision

M400

G1 Z{max_layer_z + 3.0} F3000

{if layer_z <= (initial_layer_print_height + 0.001)}

M204 S[initial_layer_acceleration]

{else}

M204 S[default_acceleration]

{endif}

{else}

G1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000

{endif}

M621 S[next_extruder]A

License:

Standard Digital File License

Related Models

Big Bird Bottle Feeder preview image

Big Bird Bottle Feeder

Gazorpa profile image

Gazorpa

3,500

Bambu Lab Magnetic Chute Cover,  Poop Management System, Recycle Cardboard bin preview image

Bambu Lab Magnetic Chute Cover, Poop Management System, Recycle Cardboard bin

thrutheframe profile image

thrutheframe

1,949

Bambu X2D P1S P2S X1C P1P Poop Chute Slide preview image

Bambu X2D P1S P2S X1C P1P Poop Chute Slide

Jay profile image

Jay

1,789

Mini Poubelle by Heliox preview image

Mini Poubelle by Heliox

HelioxLab profile image

HelioxLab

2,701

Poop Chute with removable Basket - 3 Sizes for Bambu Lab X1C / P1P / P1S preview image

Poop Chute with removable Basket - 3 Sizes for Bambu Lab X1C / P1P / P1S

Butcher9_9 profile image

Butcher9_9

800

H2/P2S/P1S Poop Chute preview image

H2/P2S/P1S Poop Chute

Panzer SU profile image

Panzer SU

2,332

Soda Bottle Bird Feeder preview image

Soda Bottle Bird Feeder

Gazorpa profile image

Gazorpa

2,208

Bambu Lab - MAGNETIC Purge/Flush/Poop bucket for X1 and P1 Series - Fullsize and Slim Version | UPDATE 2023.05.13 preview image

Bambu Lab - MAGNETIC Purge/Flush/Poop bucket for X1 and P1 Series - Fullsize and Slim Version | UPDATE 2023.05.13

Nivenante profile image

Nivenante

722