start gcode for CreatBot DX Plus
Hello! I started printing not too long ago using the CreatBot DX Plus which uses its own slicer (CreatWare) that is based on Slic3r just like PrusaSlicer. I decided I would prefer to use PrusaSlicer because there is a number of features which the native slicer did not have, but that is besides the point. I could not find a profile for printer in the PrusaSlicer configuration, so I just started copying all of the settings from my old slicer, including its custom gcode: however, the slicing always fails due to invalid custom gcode:
start_gcode Parsing error at line 8: Not a variable name {if extruder_id_0}
Here is the start gcode I use for reference:
G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops ;Add Clear Nozzle G92 E0 ;zero the extruded length M83 ;set E value is relative G0 F4200 X0 Y0 {if extruder_id_0} T0 F400 ;activate extruder NO.0 G0 X10 Y0 Z0.4 ;move a bit while down the Z M221 T0 S200 ;set flow is 200% G1 F200 X30 E+8 ;extrude amont filament to clean the hotend M221 T0 S100 ;reset flow is 100% {if initial_extruder_id != 0}G1 F1000 Z1 E-2{endif}{endif} {if extruder_id_1} T1 F400 ;activate extruder NO.1 G0 X40 Y0 Z0.4 ;move a bit while down the Z M221 T1 S200 ;set flow is 200% G1 F200 X60 E+8 ;extrude amont filament to clean the hotend M221 T1 S100 ;reset flow is 100% {if initial_extruder_id != 1}G1 F1000 Z1 E-2{endif}{endif} {if extruder_id_2} T2 F400 ;activate extruder NO.2 G0 X70 Y0 Z0.4 ;move a bit while down the Z M221 T2 S200 ;set flow is 200% G1 F200 X90 E+8 ;extrude amont filament to clean the hotend M221 T2 S100 ;reset flow is 100% {if initial_extruder_id != 2}G1 F1000 Z1 E-2{endif}{endif} M82 ;set E value is absolute G92 E0 ;zero the extruded length again ;Add End G0 Z15.0 F4200 ;move the platform down 15mm ;Put printing message on LCD screen M117 Printing...
I have seen that there is a list of placeholders available for custom gcode, but I can't tell what they correlate to or which I should replace the invalid variable name with. Has anyone else dealt with this issue before?
RE: start gcode for CreatBot DX Plus
Hey Sebastian,
Running into this issue myself. Have you found a fix since the time of your post?
RE: start gcode for CreatBot DX Plus
Added a D600 to try PrusaSlicer, and moved config files over from CreatWare folder which let me pick the printer in the wizard but I got the same issue as you did.
Found that the PrusaSliser doesn't like the code about multiple extruders.
I updated the code to this which resolved the error, will try to print today and see what happens.
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
;Add Clear Nozzle
G92 E0 ;zero the extruded length
M83 ;set E value is relative
G0 F4200 X0 Y0
G0 X10 Y0 Z0.4 ;move a bit while down the Z
M221 T0 S200 ;set flow is 200%
G1 F200 X30 E+8 ;extrude amont filament to clean the hotend
M221 T0 S100 ;reset flow is 100%
M82 ;set E value is absolute
G92 E0 ;zero the extruded length again
;Add End
G0 Z15.0 F4200 ;move the platform down 15mm
;Put printing message on LCD screen
M117 Printing...
Hello! I started printing not too long ago using the CreatBot DX Plus which uses its own slicer (CreatWare) that is based on Slic3r just like PrusaSlicer. I decided I would prefer to use PrusaSlicer because there is a number of features which the native slicer did not have, but that is besides the point. I could not find a profile for printer in the PrusaSlicer configuration, so I just started copying all of the settings from my old slicer, including its custom gcode: however, the slicing always fails due to invalid custom gcode:
start_gcode Parsing error at line 8: Not a variable name {if extruder_id_0}Here is the start gcode I use for reference:
G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops ;Add Clear Nozzle G92 E0 ;zero the extruded length M83 ;set E value is relative G0 F4200 X0 Y0 {if extruder_id_0} T0 F400 ;activate extruder NO.0 G0 X10 Y0 Z0.4 ;move a bit while down the Z M221 T0 S200 ;set flow is 200% G1 F200 X30 E+8 ;extrude amont filament to clean the hotend M221 T0 S100 ;reset flow is 100% {if initial_extruder_id != 0}G1 F1000 Z1 E-2{endif}{endif} {if extruder_id_1} T1 F400 ;activate extruder NO.1 G0 X40 Y0 Z0.4 ;move a bit while down the Z M221 T1 S200 ;set flow is 200% G1 F200 X60 E+8 ;extrude amont filament to clean the hotend M221 T1 S100 ;reset flow is 100% {if initial_extruder_id != 1}G1 F1000 Z1 E-2{endif}{endif} {if extruder_id_2} T2 F400 ;activate extruder NO.2 G0 X70 Y0 Z0.4 ;move a bit while down the Z M221 T2 S200 ;set flow is 200% G1 F200 X90 E+8 ;extrude amont filament to clean the hotend M221 T2 S100 ;reset flow is 100% {if initial_extruder_id != 2}G1 F1000 Z1 E-2{endif}{endif} M82 ;set E value is absolute G92 E0 ;zero the extruded length again ;Add End G0 Z15.0 F4200 ;move the platform down 15mm ;Put printing message on LCD screen M117 Printing...I have seen that there is a list of placeholders available for custom gcode, but I can't tell what they correlate to or which I should replace the invalid variable name with. Has anyone else dealt with this issue before?
RE:
i was banging my head just about the same thing.
got the d600 pro here in my lab. so i consulted with a friend and he provided a solution by deleting all the if extruder id parts.
try using this start g code, or adjust it in the same manner to your printer specs:
G28 X0 Y0 ;move X/Y to min endstopsG28 Z0 ;move Z to min endstops
;Add Clear NozzleG92 E0 ;zero the extruded lengthM83 ;set E value is relative G0 F4200 X0 Y0 T0 F400 ;activate extruder NO.0 G0 X10 Y0 Z0.4 ;move a bit while down the Z M221 T0 S200 ;set flow is 200% G1 F200 X30 E+8 ;extrude amont filament to clean the hotend M221 T0 S100 ;reset flow is 100%
;Add EndG0 Z15.0 F4200 ;move the platform down 15mm;Put printing message on LCD screenM117 Printing...
RISPONDI: start gcode for CreatBot DX Plus
Hello! I started printing not too long ago using the CreatBot DX Plus which uses its own slicer (CreatWare) that is based on Slic3r just like PrusaSlicer. I decided I would prefer to use PrusaSlicer because there is a number of features which the native slicer did not have, but that is besides the point. I could not find a profile for printer in the PrusaSlicer configuration, so I just started copying all of the settings from my old slicer, including its custom gcode: however, the slicing always fails due to invalid custom gcode:
start_gcode Parsing error at line 8: Not a variable name {if extruder_id_0}Here is the start gcode I use for reference:
G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops ;Add Clear Nozzle G92 E0 ;zero the extruded length M83 ;set E value is relative G0 F4200 X0 Y0 {if extruder_id_0} T0 F400 ;activate extruder NO.0 G0 X10 Y0 Z0.4 ;move a bit while down the Z M221 T0 S200 ;set flow is 200% G1 F200 X30 E+8 ;extrude amont filament to clean the hotend M221 T0 S100 ;reset flow is 100% {if initial_extruder_id != 0}G1 F1000 Z1 E-2{endif}{endif} {if extruder_id_1} T1 F400 ;activate extruder NO.1 G0 X40 Y0 Z0.4 ;move a bit while down the Z M221 T1 S200 ;set flow is 200% G1 F200 X60 E+8 ;extrude amont filament to clean the hotend M221 T1 S100 ;reset flow is 100% {if initial_extruder_id != 1}G1 F1000 Z1 E-2{endif}{endif} {if extruder_id_2} T2 F400 ;activate extruder NO.2 G0 X70 Y0 Z0.4 ;move a bit while down the Z M221 T2 S200 ;set flow is 200% G1 F200 X90 E+8 ;extrude amont filament to clean the hotend M221 T2 S100 ;reset flow is 100% {if initial_extruder_id != 2}G1 F1000 Z1 E-2{endif}{endif} M82 ;set E value is absolute G92 E0 ;zero the extruded length again ;Add End G0 Z15.0 F4200 ;move the platform down 15mm ;Put printing message on LCD screen M117 Printing...I have seen that there is a list of placeholders available for custom gcode, but I can't tell what they correlate to or which I should replace the invalid variable name with. Has anyone else dealt with this issue before?
Try with this and let me know
G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops ; Add Clear Nozzle G92 E0 ;zero the extruded length M83 ;set E value is relative G0 F4200 X0 Y0 (if extruder_id_0) T0 F400 ;activate extruder NO.0 G0 X10 Y0 Z0.4 ;move a bit while down the Z M221 T0 S200 ;set flow is 200% G1 F200 X30 E+8 ;extrude amount filament to clean the hotend M221 T0 S100 ;reset flow is 100% (if initial_extruder_id != 0) G1 F1000 Z1 E-2 (endif) (endif) (if extruder_id_1) T1 F400 ;activate extruder NO.1 G0 X40 Y0 Z0.4 ;move a bit while down the Z M221 T1 S200 ;set flow is 200% G1 F200 X60 E+8 ;extrude amount filament to clean the hotend M221 T1 S100 ;reset flow is 100% (if initial_extruder_id != 1) G1 F1000 Z1 E-2 (endif) (endif) (if extruder_id_2) T2 F400 ;activate extruder NO.2 G0 X70 Y0 Z0.4 ;move a bit while down the Z M221 T2 S200 ;set flow is 200% G1 F200 X90 E+8 ;extrude amount filament to clean the hotend M221 T2 S100 ;reset flow is 100% (if initial_extruder_id != 2) G1 F1000 Z1 E-2 (endif) (endif) M82 ;set E value is absolute G92 E0 ;zero the extruded length again ; Add End G0 Z15.0 F4200 ;move the platform down 15mm ; Put printing message on LCD screen M117 Printing...
RE: start gcode for CreatBot DX Plus
This did not work for me. I don't think the Prusa Slicer does support conditional on which extruder is present. This is a custom variable in CreatBot's Slic3r fork. I'm not sure what's the best way to go from there. Are there any pointers you guys might have?
Thanks!
RE: start gcode for CreatBot DX Plus
It does not look like I can edit my previous post, but I've confirmed that the variable in the Gcode above is not in the available placeholder of Prusa slicer:
https://help.prusa3d.com/article/list-of-placeholders_205643
RE:
I have a Creatbot D600 Pro 2 that I moved to Prusaslicer. Here is my working code. I have nozzle 2 priming before the main nozzle so that there is no oozing.
G28 ; Home all axes G92 E0 ; Zero the extruded length M83 ; Set E value to relative ; Start mesh bed leveling G29 ; Perform mesh bed leveling {if is_extruder_used[1]} T1 ; Select tool 1 (E2) G0 X50 Y5 Z[first_layer_height] ; Move to cleaning position M104 S[first_layer_temperature_1] ; Set nozzle temperature based on filament type M109 S[first_layer_temperature_1] ; Wait for Tool 1 (E2) nozzle to heat up M221 S200 ; Set flow rate to 200% G1 X0 E8 F200 ; Extrude filament to clean nozzle M221 S100 ; Reset flow rate to 100% ; Set nozzle 1 (E2) to idle temperature after cleaning M104 S[idle_temperature_1] ; Set nozzle to idle temperature after cleaning M109 S[idle_temperature_1] ; Wait for nozzle to cool down to idle temperature {endif} ; Clean nozzle routine for Tool 0 (E1) {if is_extruder_used[0]} T0 ; Select tool 0 (E1) G0 X55 Y5 Z[first_layer_height]. ; Move to cleaning position M104 S[first_layer_temperature_0] ; Set nozzle temperature based on filament type M109 S[first_layer_temperature_0] ; Wait for Tool 0 (E1) nozzle to heat up M221 S200 ; Set flow rate to 200% G1 X5 E8 F200 ; Extrude filament to clean nozzle M221 S100 ; Reset flow rate to 125% {endif} M82 ; Set E value to absolute G92 E0 ; Zero the extruded length again ; End G-code M117 Printing... ; Display printing message on LCD screen
Here is my tool-change code too 🙂
; Tool change G-code script {if next_extruder==0} ; Check if the new tool is Tool 0 {if layer_num<2} T1; Select tool 1 (E2) M104 S[idle_temperature_1] ; Set nozzle 2 to idle temperature ; Tool change to Tool 0 (E1) T0 ; Select tool 0 (E1) G92 E0 ; Zero the extruded length M83 ; Set E value to relative ; Move Z axis up by 1mm and move to a safe spot G0 Z{layer_z+2} ; Move Z axis up by 1mm relative to current layer height G0 X260 Y175 ; Move to x & y positions of wipe object (adjust coordinates as needed) M104 S[temperature_0] ; Set nozzle temperature based on filament type M109 S[temperature_0] ; Wait for Tool 1 (E2) nozzle to heat up ; Clean nozzle routine for Tool 0 (E1) M221 S200 ; Set flow rate to 200% G1 E2 F200 ; Extrude filament to clean nozzle M221 S100 ; Reset flow rate to 100% {endif} {if layer_num>=2} T1; Select tool 1 (E2) M104 S[idle_temperature_1] ; Set nozzle 2 to idle temperature ; Tool change to Tool 0 (E1) T0 ; Select tool 0 (E1) G92 E0 ; Zero the extruded length M83 ; Set E value to relative ; Move Z axis up by 1mm and move to a safe spot G0 Z{layer_z+2} ; Move Z axis up by 1mm relative to current layer height G0 X260 Y175 ; Move to x & y positions of wipe object (adjust coordinates as needed) M104 S[temperature_0] ; Set nozzle temperature based on filament type M109 S[temperature_0] ; Wait for Tool 1 (E2) nozzle to heat up ; Clean nozzle routine for Tool 0 (E1) M221 S200 ; Set flow rate to 200% G1 E8 F200 ; Extrude filament to clean nozzle M221 S100 ; Reset flow rate to 100% {endif} {endif} {if next_extruder==1} ; Check if the new tool is Tool 1 {if layer_num<2} T0; Select tool 0 (E1) M104 S[idle_temperature_0] ; Set nozzle 1 to idle temperature ; Tool change to Tool 1 (E2) T1 ; Select tool 1 (E2) G92 E0 ; Zero the extruded length M83 ; Set E value to relative ; Move Z axis up by 1mm and move to a safe spot G0 Z{layer_z+2} ; Move Z axis up by 1mm relative to current layer height G0 X282 Y175 ; Move to x & y positions of wipe object (adjust coordinates as needed) M104 S[first_layer_temperature_1] ; Set nozzle temperature based on filament type M109 S[first_layer_temperature_1] ; Wait for Tool 1 (E2) nozzle to heat up ; Clean nozzle routine for Tool 1 (E2) M221 S200 ; Set flow rate to 200% G1 E2 F200 ; Extrude filament to clean nozzle M221 S100 ; Reset flow rate to 125% {endif} {if layer_num>=2} T0; Select tool 0 (E1) M104 S[idle_temperature_0] ; Set nozzle 2 to idle temperature ; Tool change to Tool 1 (E2) T1 ; Select tool 1 (E2) G92 E0 ; Zero the extruded length M83 ; Set E value to relative ; Move Z axis up by 1mm and move to a safe spot G0 Z{layer_z+2} ; Move Z axis up by 1mm relative to current layer height G0 X282 Y175 ; Move to x & y positions of wipe object (adjust coordinates as needed) M104 S[temperature_1] ; Set nozzle temperature based on filament type M109 S[temperature_1] ; Wait for Tool 1 (E2) nozzle to heat up ; Clean nozzle routine for Tool 1 (E2) M221 S200 ; Set flow rate to 200% G1 E8 F200 ; Extrude filament to clean nozzle M221 S100 ; Reset flow rate to 100% {endif} {endif} ; End of tool change G-code script