Simplify3d 4.0.1 gcode causing Duet to mess up
-
I haven't been using Simplify3d for awhile, but needed to use it for a model with supports that Prusa Slic3r wasn't handling too well. I had used older version of Simplify3d with the Duet with no issues. However, I cannot get it to work.
I can send the file to the Duet using the Upload G-Code File(s) on the Web page. The file uploads fine. But when I go to try printing with it (starting the print from the G-Code Files page), I get a bunch of error (Error: Temperature 200.0°C too high for heater 0), the Duet disconnects, heaters do not turn on, and then it tries to print. I end up having to power cycle the Duet to get it to stop. Clicking PAUSE on the PanelDue does cause it to pause, but never gives the CANCEL option.
I have tried running the commands one at a time and the printer behaves properly. It is only when trying to use a file generated by Simplify3D that this happens.
Duet 1.21 on Duet WiFi
Simplify3D 4.0.1Here is the start of the g-code generated by Simplify3D
G90
M82
M106 S255
G4 P500
M106 S0
T0
M104 S200 ; set extruder temp
M140 S80 ; set bed temp
M190 S200 ; wait for bed temp
M109 S80 ; wait for extruder temp
G28
G92 E0
G1 E-4.0000 F1800
G1 Z0.200 F1000
; process Process1
; layer 1, Z = 0.200
T0
; tool H0.200 W0.400
; skirt
G1 X32.550 Y74.813 F5000
G1 E0.0000 F540
G92 E0
G1 X33.065 Y74.600 E0.0182 F3360
G1 X266.935 Y74.600 E7.6412
G1 X267.450 Y74.813 E7.6593 -
M190 should be 80 and M109 should be 200. As it is, you start heating the hot end to 200 with M104 but then change it to 80 with M109, and you start heating the bed to 80 with M140 but then change it to 200 with M190.
Edit. Heater 0 is the bed, hence the error when you try to heat it 200 deg C because your confi.fg has probably got a much lower maximum limit defined by M143 (on firmware 1.17 onwards, the default is 125 deg C).
-
@deckingman Thanks. That is one of those, "was I even thinking" moments. The idea is to get both the bed and hotend heating at the same time. After switching the temps, it is working now. These are being set by variables in the script and I just had the wrong ones in the second set. Thanks.
And that first T0 was left in after a test I did and shouldn't have been in there. Didn't make a difference if it was there or not.
-
No worries. We all have those moments . BTW you can just take out the M104 and M140 commands - there is no point having them if they are immediately followed by M109 and M190. For info, although M104 will work it's been deprecated and we ought to be using G10 and "T" commands. I'd leave the T0 command in there unless you have a T0 in your config.g file. The reason being that if you try to heat the hot end with no tool selected, you'll get an error message.
Hope you don't mind me pointing this out but this is little strange:
M106 S255
G4 P500
M106 S0Turn fan on full, wait half a second then turn it off ?
-
@deckingman The reason for the temperature combination is to start both the hotend and bed heating at the same time. So set and return. Then wait for the bed to heat up, slower of the two, then wait for the hotend. I picked this up from the Prusa Slic3r settings. Cuts down on the wait time for heating.
As for the fan blip, yeah, that is strange, but is generated by the slicer and not my code.
-
I think it's to ensure the fan will turn, even when sending a low PWM...
-
@elmoc said in Simplify3d 4.0.1 gcode causing Duet to mess up:
@deckingman The reason for the temperature combination is to start both the hotend and bed heating at the same time. So set and return. Then wait for the bed to heat up, slower of the two, then wait for the hotend. ...........
Ahh yes that's cool. My turn for "one of those moments" as I actually do the same thing, (well almost). I just start the bed heating, then do all the other stuff. The hot end gets heated as part of my home all routine which gets called form the start gcode. So we both achieve the same objective, just by slightly different routes.
-
@fma said in Simplify3d 4.0.1 gcode causing Duet to mess up:
I think it's to ensure the fan will turn, even when sending a low PWM...
Yes, that is what the blipping is for. But in this case, it is to make sure the fan is off so just setting it to 0 wouldn't have that problem. Doesn't really hurt anything so not too concerned about it.
-
@ElmoC, I have this start gcode for Simplify, hope it work for you
T0
M140 S[bed0_temperature] ; set bed temp no wait
M104 S[extruder0_temperature] ; set extruder temp no wait
M106 S0
G28 ; home all axes
M116 ; wait all temps
M98 P/macros/CleanNozzle ; clean the nozzle -
@demonio669 said in Simplify3d 4.0.1 gcode causing Duet to mess up:
@ElmoC, I have this start gcode for Simplify, hope it work for you
T0
M140 S[bed0_temperature] ; set bed temp no wait
M104 S[extruder0_temperature] ; set extruder temp no wait
M106 S0
G28 ; home all axes
M116 ; wait all temps
M98 P/macros/CleanNozzle ; clean the nozzleNot familiar with the M116 command. Will look into that. Thanks.
-
https://duet3d.dozuki.com/Wiki/Gcode#Section_M116_Wait
It will wait to all temps to reach the configured value . when all temps reach the configured temp continues
-
@demonio669 looked it up on the wiki gcode page and see it's not supported in Marlin. But will probably update my Duet scripts to use it.