M1chl
December 2, 2024, 4:56pm
1
Hello, I recently purchased P1S and I was kind of wondering, if there is possibility of changing initial purge line on P1S and swap it with gcode from A1?
My reasoning behind is that A1’s ‘snot line’ functions much better, is some filament is stuck on the nozzle.
I never done gcode modification, because I am worried I might mess something up, but out of curiosity, I would like to ask this question.
Thank you for any response, have a nice day!
if i were you ill think before doing that cuz it may damage the machine
3 Likes
M1chl
December 2, 2024, 5:11pm
3
Well that’s something I am worried about, however I don’t see how this could be damaging, tho.
cuz p1s is cxy but a1 is i3 it does matter
No, it doesn’t.
G-code uses the same coordinate system. The interpretation of gcode for each motion system is all done on the internal controller.
The purge line can be modified but do be aware the front left corner can’t be full used as it will activate the filament cutter.
4 Likes
If you’re interested, there’s a great write-up by Teaching Tech on adaptive purge lines: Adaptive purge for any 3D printer using slicer variables by TeachingTech | Download free STL model | Printables.com
I use a variant of his code on my Orca Slicer profile. Reading (and writing) gcode is pretty easy, and the Bambu code is well commented.
But… there is the real possibility of causing physical damage to the printer.
All it takes is forcing a move outside the “bounds” of the print area and things get torn off quite easily. I trashed a very nice built plate on my Ender3 by a mistake in homing gcode… so you do need to know what you’re doing… but it’s not “difficult” code to write.
1 Like
Don’t be rediculous… changing the purge line cannot possibly damage the printer any more than printing a benchy could.
For the record, here’s how you use the A1 style pressure advance purge line on the P1S
This is from the Steinwipe Mod
;13 SteinSwitch use_true_PA_test_line
;Set to “true” to print a test line that shows PA setting in action
;Set to “false” to use stock procedure
{if true}
;+++++++++++++++++++++++++++++
M1002 gcode_claim_action : 8 ; display “Calibrating extrusion”
;_Use filament pressure advance setting
M104 S{nozzle_temperature_initial_layer[initial_extruder]} ; start heating nozzle
{if enable_pressure_advance[initial_extruder]} ; Orca slicer only
M900 K[pressure_advance] L1000.0 M10
;-----------------------------
;Test line with PA turned ON ============+==========+===========+============
;-----------------------------
{endif}
M400
G90
{if curr_bed_type == “Supertack Plate” || curr_bed_type == “Cool Plate”}
;____________glacier cool plate test line start position__________
G0 X15 Y{28-2} Z2 F30000 ; Test line start position glacier plate (top of no-go zone Y28 minus extruder offset 2mm typical)
G0 Z0 ; touch nozzle to plate to prevent ooze letting air into nozzle
M109 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extruder to first layer temp
M83
G0 E[retraction_length[initial_extruder]] F{retraction_speed[initial_extruder] * 60} ; unretract filament
;____________glacier cool plate test line routine__________
G0 Z0.3 F18000 ; Lift to start position
M400
G91
M83
G0 Y-20 E10.0000 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 Z0.2
G0 X2.4 E{.3742 * 0.48} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60} ; cut over
G0 Y5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 Y5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 Y5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 Y5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 Y-2 E-[retraction_length[initial_extruder]] F{retraction_speed[initial_extruder] * 60} ; ; wipe and retract
{else}
G0 X90 Y-4 Z2 F30000 ; Test line start position all stock plates
G0 Z0 ; touch nozzle to plate to prevent ooze letting air into nozzle
M109 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extruder to first layer temp
M83
G0 E[retraction_length[initial_extruder]] F{retraction_speed[initial_extruder] * 60} ; unretract filament
G0 Z0.3 F18000 ; Lift to start position
M400
G91
M83
G0 X20 E10.0000 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 Z-0.1
G0 X5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X5 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X-2 E-[retraction_length[initial_extruder]] F{retraction_speed[initial_extruder] * 60} ; ; wipe and retract
{endif}
G90 ; absolute
{else}
;Stock routine ___
M975 S1
G90
M83
T1000
G1 X18.0 Y1.0 Z5 F18000 ; Move to start position
G0 Z0 ; drop to bed
M109 S{nozzle_temperature_initial_layer[initial_extruder]}
G1 Z-0.1
G0 E2 F300
G0 X240 E15 F{outer_wall_volumetric_speed/(0.30.5) * 60}
G0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3 0.5)/ 4 * 60}
G0 X239.5
G0 E0.2
G0 Y1.5 E0.700
G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
M400
{endif}
MyTechGuyRI:
G0 Z0 ; drop to bed
I’m curious… Does the line above automatically include the saved nozzle offset, or do you have to activate it in some way?
All that is doing is G0 (move to) z height of zero, if it’s done after the bed levelling and saving of the mesh z0 is whatever the printer now thinks it is