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
RE: start gcode for CreatBot DX Plus
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
Hi, this G-code works great!
I'm having a lot of trouble operating D600 pro 2... Would you be willing to share some profiles, possibly for ABS?
I also believe that Z active compensation is not working at all, so a lot of clogging occure because sometimes it is too close to the bed, on other side it is too far and poor adhesion happens.
Any advice would be appreciated greatly. Thanks.
Best regards, Mitja