Hi folks,
I’ve used Cura as my main slicer with my Flashforge Creator Pro for several years with no major issues. It was a while since I had upgraded (4.12) and I decided to try out the latest version (5.6).
My printer and slicing profiles seemed to transfer over automatically, but when I tried to slice and print, I encountered a strange issue: It no longer heats the extruders or the bed.
It just starts “printing” immediately with stone-cold extruders and bed. The temperature settings in my slicing profiles seem unchanged from 4.12, so I’m a bit at a loss as to what is happening.
I can verify that this is not a hardware issue with the printer, as I can run print jobs generated in Cura 4.12, and the heaters work just fine.
Anyone else encounter this or a similar issue? Any known fixes or recommended troubleshooting advice?
Thanks in advance!
What’s in your start gcode ?
Maybe you use a variable that has been deprecated between the 4.12 and 5.6, and is set to 0 ?https://all3dp.com/2/cura-start-gcode-end-gcode/
For example :
{print_temperature} Alias for material_print_temperature (deprecated, do not use)
{print_bed_temperature} Alias for material_bed_temperature (deprecated, do not use)instead of :
{material_print_temperature_layer_0} and {material_bed_temperature_layer_0}Thanks, this is my start gcode, which is unchanged between 4.12 and 5.6:
M140 S{material_bed_temperature, initial_extruder_nr} T0 ; set bed temperature M134 T0 ; stabilize bed temperature M104 S{material_print_temperature_layer_0, initial_extruder_nr} T{initial_extruder_nr} ; set left or right extruder temperature M133 T{initial_extruder_nr} ; stabilize left or right extruder temperature
How up-to-date is the file on fieldofview? There doesn’t seem to be any deprecated variables…
The way that the heaters turn on and off is by using a gcode command. So my first thought is that somehow the new slicing profile is not spitting out those commands. Try comparing the generated gcode from slicing the same model in both versions and see what’s different. The temperature commands have to be at the start so should be easy to find. The gcode commands themselves are very googleable.
Look at the start G-code of your configured printer. Copy over the one from the old version into the new version.
The start gcode of the old version and new version are identical.
The gcode command should be either
m104 e0 160
Sets the first extrider to 160, doesn’t wait
Or
M109 e0 190
sets the first extruder to 190, waits to reach temp before moving on,
I would consider checking with a usb connection and setting the hot end temp manually that way, if that works, it’s something in the gcode, and you can pull up a gcode reader (or text file,) and search for them.
Try comparing the generated gcode from slicing the same model in both versions and see what’s different
Is there an easy way to compare .x3g gcode files? It seems to be in binary format, rather than plaintext. Alternatively, is there a way to capture the slicer output gcode before it is translated to x3g?
Wtf is that format and why would anyone use it. I guess it’s compressed. That would be the only reason to have a binary format for this.
Also the who writes the x3g file? Is it cura directly?
Wtf is that format and why would anyone use it
I think x3g is the required format for all printers running Sailfish firmware, such as my FlashForge printer. I’d be hesitant to change the firmware, as I don’t want to risk bricking my printer if I do the wrong thing.
Also the who writes the x3g file? Is it cura directly?
Cura writes the files using the X3GWriter plugin by Ghostkeeper. Perhaps there is a way to turn off this plugin and compare the gcode?
I’m sure there must be a way to temporarily change Cura’s settings to export G-code instead of x3g. Did you figure this out yet?
For me, this problem started with Cura 5.6. 5.5 was OK. It stems from lines in the start.gcode that have patterns with two values inside the curly braces such as:
M104 S{material_print_temperature_layer_0, initial_extruder_nr} T{initial_extruder_nr} ; set left or right extruder temperature
For a temperature of 200 and extruder 0, this should produce the gcode “M104 S200 T0”, but instead produces “M104 S(200,0) T0”. The latter causes the nozzle heater to shut off.
It looks like this bug will be fixed in Cura 5.7. (https://github.com/Ultimaker/Cura/issues/17501)
So the solution is to either go to a Cura version older than 5.6, wait for 5.7 or edit the start.gcode. For me, if I remove “, initial_extruder_nr” from each two value pattern, it works OK. In my Flashforge Creator Pro start template, this pattern appears 4 times. My nozzle temperature line looks like:
M104 S{material_print_temperature_layer_0} T{initial_extruder_nr}
If you have a configuration where the individual nozzles temperature/settings are different from the global ones, then things may not work as expected. For example, I am not sure if replacing
{nozzle_wipe_gcode, initial_extruder_nr}
by{nozzle_wipe_gcode}
does the right thing, particularly with the left extruder. But I am printing fine with the right extruder.Thanks for your comment! Not sure how I missed it.
I did some experimentation and came to similar conclusions. I’ve upgraded to 5.7 and can confirm that this bug is fixed. Thanks again for your comment!