What defines the hot end as active? As far as I can tell, disabling an extruder in Cura doesn't change the code output.
Cura 4.7.1 outputting code that sets global extruder temp on dual extruder printer even if one is disabled
GregValiant 1,141
The active tool is the last one that was called out in a "T" command. A "T" command is a modal command. It stays in effect unless another "T" command changes it.
Is that an explicit
T0
or does having it as an argument count too?
ie;
M104 S0.0 T1
tinkergnome 926
Only an explicit tool change command sets the active hotend (T0, T1...).
Again: all assuming that the printer is driven by Marlin. No clue if other firmware behaves different.
GregValiant 1,141
I used "QIDI Print" (Cura 4.3.0) to generate three gcode files. (I used two 25mm calibration cubes as models)
This is from a file with the "R" extruder disabled:
T1
G92 E0
G92 E0
G1 F1800 E-3
This is from a file with the "L" extruder disabled:
T0
G92 E0
G92 E0
G1 F1800 E-3
And this is from a file that uses both extruders:
G92 E0
G92 E0
G1 F1800 E-3
In all three cases, no mention is made in the G92 or G1 lines of which extruder should be reset to 0 and then retract 3mm. The firmware knows which extruder to send the steps to. I understand that this is indirect evidence and does not mean that M104 and M109 work the same way in your printer.
Your printer also excepts (at least two) custom GCODE commands like M4010 and M2100 that are generated by QIDI Print. These might have something to do with the display (M4010 in particular since it sends Hex code). It appears that developers at QD did some alteration to Cura 4.3.0 for their printers. The firmware (which according to the generated Gcode files is Marlin) must have been altered to accept those commands since neither is listed on the MarlinFW site as being supported. If QIDI Print is using post-processing plugin(s) to generate those special Gcodes, maybe you can copy the plugin(s) over to your newer Cura installation.
- 1 month later...
I'm trying to get my X-Pro working with Cura 4.8, and have run into the same issue.
I've used it quite a bit using the right extruder with the files that Qidi sent me. But when you try to use the left extruder, you run into the problem of the right extruder heating up.
So my "solution" was to setup 3 separate printers, , for Left, Right, and Dual.
I'm currently working on some definition files to make setting them up easier.
To make the left extruder active, I just add T1 to the Start G-code. Without doing this, I noticed the right extruder trying to retract the filament after the prime pass. The T1 fixed that.
To fix the issue with the right extruder heating up, I've been editing the g-code and adding T1 to the M104 S### line
I was playing around while typing this, and just came across a workaround using Search and Replace in the post processing plugin.
My startup code uses M104 T1 S###
You want to replace M104 S###, so you can search for "M104 S" and replace with "M104 T1 S" and it will add the T1 without messing with any of the other M104's.
Now back to getting 3 versions of definition files working...
-
1
GregValiant 1,141
Nice. I'm always in favor of a good work-around.
Recommended Posts
GregValiant 1,141
Examples
Set target temperature for the active hotend
As Tinkergnome mentioned in the other post, you may have a firmware problem. M104 isn't "global" and without any "T" parameters is supposed to set the temperature on the "Currently Active" hot end only. For any other hot end to be effected there must be an explicit parameter.
T0 ;change to extruder 0
M104 T1 S175 ;Set extruder 1 to a standby temperature of 175
M104 S200 ;Set the current extruder (in this example it's 0) to 200. T1 isn't mentioned so it stays at 175.
T1 ;change back to extruder 1
M104 T0 S175 ;Set extruder 0 to a standby temperature of 175
M104 S200 ;Set the current extruder (now it's 1) to 200. T0 isn't mentioned so it stays at 175.
Any other action taken by the printer firmware isn't right.
Link to post
Share on other sites