Simplify 3D, G-Code changes, questions & answers

The official subforum for discussion of the installation and use of the official M2 Dual Extruder upgrade.
User avatar
Jules
Posts: 3144
Joined: Wed Jan 21, 2015 1:36 am

Simplify 3D, G-Code changes, questions & answers

Post by Jules » Tue Oct 06, 2015 4:44 am

Okay, I've got a startup and ending script almost slapped together that i like, but I'm seeing a couple of issues that are a bit baffling. I'd just like to know if anyone else has seen them before i go do a major search in the trouble tickets over on the S3D forum...

1. Did the code to kill the extruder fan change from this, to something else?

M108 S0 ; stop extruder

The G-code definitions that I have list M107 as Fan Off, but the M108 code has been used successfully to stop that extruder fan, by turning off the extruder, since I've been here. And using M107 S0 does nothing either.

Anyway, S3D is not recognizing that M108 code in my End Script anymore. It does everything else except kill that extruder fan. I am largely at a loss.

2. If you turn both the extruders on, you need separate command codes to kill the temps for each extruder, or one of them stays on. (That's not a question, just an observation.)

3. The alignment is good between the two nozzles, obviously i need to fiddle with the Tool Change script a bit (square below was printed with the S3D default.) But I can't seem to find the entry for the X-Offset that moves the print to the center of the bed. Somewhere it's got a setting in the firmware (or the S3D treatment of it) that is treating the print head like there is a nozzle in the center, where it used to be, and all of the prints from the left (Tool 0) extruder are exactly 15.5 mm to the left of center. (I am zero-ing using Tool 0, and i've tried messing with the Global X-Offsets, but no change when i do.)

My first dual color calibration square - I'm so proud! (not) :lol: :lol: :lol:
Dual-first print.jpg
Dual-first print.jpg (286.95 KiB) Viewed 14399 times
I have one complaint: After spending the better part of the day fine tuning each extruder's settings in the "normal" operating mode, (the one where you use one extruder for the print and one for infill), I went to print a dual color print using the Dual Extrusion Wizard. Well, there is no way to import an individual extruder's settings into the wizard, you basically have to go in and set it up again inside the wizard. Not! Cool! :?

And i ran into another problem, which you guys might have also seen - I've got some seriously different Z-Offsets for the two kinds of PLA that I'm printing simultaneously. How are you handling the Z-Offset issue? Do you take an average for the two? Because if i use one, the other filament either squishes the first layer too much or air prints and doesn't stick well. (It's rare, but there's one that i print that i really like but it has a really weird Z-Offset. Waaay out of range of the other PLA that i use. Even tried fiddling with the extrusion multiplier and 1st layer heights for that one - with no luck.)

I'm sneaking up on it though...... :D
Getting Closer.jpg
Getting Closer.jpg (187.47 KiB) Viewed 14399 times
If anyone would like to take a peek at my Starting Code, I'd appreciate it. (I used your 215 X value Jin, and threw in your acceleration limits.) But I made a couple modifications to how it moves off for the purge, and it just wipes once. (It's all that's needed, if you purge the right nozzle first, then the left, the first one cools and drops off before the wipe. Saves some time.) I still need to figure out how to shut the fans off for the Ending Script.

Starting Script

M108 S255 ; turn on M2 extruder
M201 X1000 Y1000 ; lower default accelerations
T0
G28 X Y ; home X and Y axes
G1 Y50 F8000 ; move forward to avoid binder clips
G1 X215 ; move off platform
G28 Z ; home Z axis
G1 Z0.4 ; position nozzle
T1
G92 E0 ; zero extruder
G1 E25 F225 ; purge nozzle
G92 E0 ; zero extruder
T0
G92 E0 ; zero extruder
G1 E25 F225 ; purge nozzle
G92 E0 ; zero extruder
G1 X190 Z0.1 E1.0 F1200 ; slow wipe
G1 X180 Z0.25 ; lift



Anyway, tomorrow i'll take a shot at something larger to see what the ooze situation is really like. Nothing much happens on a calibration square. :D

jsc
Posts: 1864
Joined: Thu Apr 10, 2014 4:00 am

Re: Simplify 3D, G-Code changes, questions & answers

Post by jsc » Tue Oct 06, 2015 5:23 am

1. M108 is a non-standard gcode and was not implemented in the dual firmware.
If you use mine, that I linked in your other thread, it will turn the extruder fan on and off automatically as the extruder reaches temperature.

2. Really? I didn't notice that.

3. You've marked off the exact center of your bed? I expect it may be because the dual extruder default settings changes the X size for your bed. (Preferences, Machine, Build Volume (X-axis)).

Regarding the offset: not much you can do. Split the difference. Did you equalize their heights using MG's suggestion of loosening one, bringing up the bed to contact both, and tightening?

User avatar
Jules
Posts: 3144
Joined: Wed Jan 21, 2015 1:36 am

Re: Simplify 3D, G-Code changes, questions & answers

Post by Jules » Tue Oct 06, 2015 5:38 am

1. M108 is a non-standard gcode and was not implemented in the dual firmware.
If you use mine, that I linked in your other thread, it will turn the extruder fan on and off automatically as the extruder reaches temperature.
Well, crud! That would explain it! I'll def take a closer look at your ending code - i need something to turn that thing off - it's still pretty noisy. :?
2. Really? I didn't notice that.
Might be because i turn mine on manually to preheat before sending a print. (Both extruders.) Saves time during the warm-up phase. I think S3D warms up an extruder, then warms up the bed. If you preheat, they both get going simultaneously - takes a lot less time.
3. You've marked off the exact center of your bed? I expect it may be because the dual extruder default settings changes the X size for your bed.
No, i measured from the edge and subtracted. Probably overkill, but if I try to print something down the road that spans the bed, it's going to cause issues if it's not centered. (Or it might not....who knows? :P )

jsc
Posts: 1864
Joined: Thu Apr 10, 2014 4:00 am

Re: Simplify 3D, G-Code changes, questions & answers

Post by jsc » Tue Oct 06, 2015 5:47 am

No no, not my ending code. My firmware. It's Marlin 1.0.2 set up for an M2 dual.

S3D warms up the bed first, then the extruders. Because the extruders heat up so quickly, there's really not that much time lost. I've been meaning to time how quickly the bed heats up, so that I can coordinate the heating so that they all end up at the target around the same time, but so far it's just been too much effort.

Remember that you lose an inch off the left for the right extruder.

User avatar
Jules
Posts: 3144
Joined: Wed Jan 21, 2015 1:36 am

Re: Simplify 3D, G-Code changes, questions & answers

Post by Jules » Tue Oct 06, 2015 6:26 am

jsc wrote:No no, not my ending code. My firmware. It's Marlin 1.0.2 set up for an M2 dual.

S3D warms up the bed first, then the extruders. Because the extruders heat up so quickly, there's really not that much time lost. I've been meaning to time how quickly the bed heats up, so that I can coordinate the heating so that they all end up at the target around the same time, but so far it's just been too much effort.

Remember that you lose an inch off the left for the right extruder.
Oh okay - I was off looking for your ending script, and couldn't find it. :lol:

Couple of questions about your firmware....

Has it been tested with the latest version of S3D? (I ask because I am really very new at this - like two days worth now, and while i will no doubt jump on it once i get a little more comfortable with the whole dual thing, especially if it turns off those fans, I need to learn what the S3D and Cura software can handle first. I have to find out if an issue is a pure S3D thing without wondering if it might be something different in the firmware. I might not be the best candidate to test it just yet. :| )

What changes did you implement in it?

If it does work better - yeah, it needs to be tested and popped into the guide for sure.

And I do remember that we lose an inch or so of bed space for dual prints - so that might be what S3D is doing.
(Whoop! Just figured out that you have to change the build volume by adjusting the X value down to 168.9 from 200. Now the build plate doesn't hang off the edge of the bed in the preview area. One small step forward.....I'll take it. ROFL!) :lol:

jsc
Posts: 1864
Joined: Thu Apr 10, 2014 4:00 am

Re: Simplify 3D, G-Code changes, questions & answers

Post by jsc » Tue Oct 06, 2015 2:07 pm

The firmware is compatible with S3D. Only changes are that I added the auto fan control, added the workaround fix for the fast travel/skipped steps, and redid the PID parameters after an autotune.

User avatar
Jules
Posts: 3144
Joined: Wed Jan 21, 2015 1:36 am

Re: Simplify 3D, G-Code changes, questions & answers

Post by Jules » Tue Oct 06, 2015 5:22 pm

jsc wrote:The firmware is compatible with S3D. Only changes are that I added the auto fan control, added the workaround fix for the fast travel/skipped steps, and redid the PID parameters after an autotune.
Okay, I'm game to take it for a test drive once i've figured out what I'm doing here. :D

User avatar
Tim
Posts: 1205
Joined: Thu Apr 10, 2014 2:19 pm
Location: Poolesville, Maryland
Contact:

Re: Simplify 3D, G-Code changes, questions & answers

Post by Tim » Tue Oct 06, 2015 6:01 pm

A few comments. . .

(1) Thanks for pointing out the non-existant M108. I still have that in my starting code although it's not implemented in Smoothieware, either.

(2) I notice that you have the standard "slow wipe" movement. Jin (on another thread) mentioned moving the Y position during the slow wipe. Otherwise, the right extruder wipes right over top of where the left extruder wiped, and ends up collecting on the nozzle whatever the left extruder left behind.

(3) I don't see any workaround for S3D's handling of the tool changing. I could have missed something, but as far as I could tell, S3D just forgets to retract the filament in the initial unused extruder, and it takes quite a while for the print to recover from that mistake (I have insisted that T0 is the left extruder and T1 is the right extruder, which caused me to have to swap the two in a number of places in S3D; it's possible that if I used the S3D default, which is to define T0 as the right extruder and T1 as the left, there might be fewer problems overall. But it looked to me like that way is defining the right extruder as the "primary" one, which I don't like, largely because the right side loses 20cm of bed space on the X axis). If the tool change settings are set in the "advanced" tab of S3D, then it's impossible to get the first retraction to happen, and all the tool changes after that are wrong, and there's nowhere to insert some scripted gcode to make it right. In the end, I had to set all the tool change distances in the advanced tab to zero to stop that, and put in the following tool change gcode script:

Code: Select all

T[old_tool]
G90 E0
G1 F1200 E-10
G92 E0
T[new_tool]
G92 E0
G1 F1200 E10
G92 E0
This is accompanied by making sure that the process is set up to have the left extruder (T0) put down the skirt, because that forces S3D to make the left extruder the first one to be active and print. Otherwise the start script, which retracts T1, wouldn't be right.

This is my start script, most of which can be ignored because it does the same as yours, except for the bit at the end which retracts T1. Note that my slow wipe is also "wrong" and should make a jog in Y as Jin suggests. I haven't put that in yet.

Code: Select all

T0 ; start with left extruder
G28
G1 X0 Y50 Z0.3 F9600
G1 X208 Z10 ; move off the bed
G1 Z0.4
G92 E0
G1 E20 F225 ; purge left
G92 E0
T1 ; switch to right extruder
G1 E20 F225 ; purge right
G92 E0
G1 X160 Z0.1 E1.0 F1200 ; slow wipe
G1 X140 Z0.25
G90 E0
G1 F1200 E-10 ; retract inactive T1
G90 E0
I just updated Simplify3D to 3.0.2 today, and found no difference in the gcode it produced, as far as the tool changes were concerned.

User avatar
Jules
Posts: 3144
Joined: Wed Jan 21, 2015 1:36 am

Re: Simplify 3D, G-Code changes, questions & answers

Post by Jules » Tue Oct 06, 2015 7:11 pm

Tim wrote:A few comments. . .
(2) I notice that you have the standard "slow wipe" movement. Jin (on another thread) mentioned moving the Y position during the slow wipe. Otherwise, the right extruder wipes right over top of where the left extruder wiped, and ends up collecting on the nozzle whatever the left extruder left behind.
Not if you wipe them both at once....try it. :D The right extruder, which is purged first, has time to cool while the left is purging. The thread usually falls off before it hits the bed, and by the time the right nozzle reaches the bed, the movement of the print head after the left nozzle wipe takes the right nozzle off at an angle towards the center, so it doesn't follow the path of the left nozzle wipe.

It might be an issue if the purge from the left nozzle globs up and collects as a wad on the side of the bed, but i always hang around and de-glob when i start a print anyway. (Got to keep an eye on the first couple of layers.) So I just knock it off if it does. Usually it just drops down. (I'll see what happens if i leave it alone next time it globs.)

It works fine for PLA, (so far), but I can definitely see that it might not necessarily be the best for other stickier/hotter filaments. The main thing i wanted to do was put the print head off the platform before homing the Z. First time i tried it, I whacked the right nozzle against one of the bed clips when it pulled forward to dodge them. :lol: Had to rethink that one. :D
(3) I don't see any workaround for S3D's handling of the tool changing. I could have missed something, but as far as I could tell, S3D just forgets to retract the filament in the initial unused extruder, and it takes quite a while for the print to recover from that mistake (I have insisted that T0 is the left extruder and T1 is the right extruder, which caused me to have to swap the two in a number of places in S3D; it's possible that if I used the S3D default, which is to define T0 as the right extruder and T1 as the left, there might be fewer problems overall. But it looked to me like that way is defining the right extruder as the "primary" one, which I don't like, largely because the right side loses 20cm of bed space on the X axis). If the tool change settings are set in the "advanced" tab of S3D, then it's impossible to get the first retraction to happen, and all the tool changes after that are wrong, and there's nowhere to insert some scripted gcode to make it right. In the end, I had to set all the tool change distances in the advanced tab to zero to stop that, and put in the following tool change gcode script:

Code: Select all

T[old_tool]
G90 E0
G1 F1200 E-10
G92 E0
T[new_tool]
G92 E0
G1 F1200 E10
G92 E0
This is accompanied by making sure that the process is set up to have the left extruder (T0) put down the skirt, because that forces S3D to make the left extruder the first one to be active and print. Otherwise the start script, which retracts T1, wouldn't be right.
Yeah, I set mine up with left T0 and right T1 too, and had the same issue with the beginning of extrusion with the right extruder being extremely skimpy until it gets re-primed. (Generally just on that first layer.) I'm using the S3D fill-in-the-blanks spots right now, but I cut the retraction settings down by a lot. 5mm tool change retraction and -0.3mm extra recovery - the first few prints were getting globs at the start from using the same amount of re-priming filament as retraction. Since its PLA, the oozing isn't that bad, and i can get by with a lower retraction.

What i did discover, is that if you don't want to mess with making sure that you have enough filament to get things started on a two color print, and you haven't worked out a handy tool change script yet, print with both a Shield and a Brim. The Brim attaches itself to the Shield, not the print, and in addition to keeping the shield upright and attached, it gives some priming time for the nozzles that it really needs to get things going smoothly.

Soon as the current print is done, I'll take a poke at one using your script.....(currently about 4 hours into a 7 hour print.) So far so good, but there are a couple of issues, and other oddities that I want to discuss with you guys when this gets done. I'm sure you've seen them.
This is my start script, most of which can be ignored because it does the same as yours, except for the bit at the end which retracts T1. Note that my slow wipe is also "wrong" and should make a jog in Y as Jin suggests. I haven't put that in yet.

Code: Select all

T0 ; start with left extruder
G28
G1 X0 Y50 Z0.3 F9600
G1 X208 Z10 ; move off the bed
G1 Z0.4
G92 E0
G1 E20 F225 ; purge left
G92 E0
T1 ; switch to right extruder
G1 E20 F225 ; purge right
G92 E0
G1 X160 Z0.1 E1.0 F1200 ; slow wipe
G1 X140 Z0.25
G90 E0
G1 F1200 E-10 ; retract inactive T1
G90 E0
Depending on what you are printing, you might be able to take that last retraction out of there. It really doesn't have much of a chance to dribble at the very beginning, and if it does, it's likely to be on the bed during the wipe. Maybe just for the first layer we could drop the temp on the inactive nozzle to keep it from drooling, instead of retracting? Then it would at least be primed and there wouldn't be a gaping hole in the print at one edge. (Yeah, I've seen it all right! :? ) Would take longer to print the first layer, but it might not be so bad overall.
I just updated Simplify3D to 3.0.2 today, and found no difference in the gcode it produced, as far as the tool changes were concerned.
Excellent - I can try the script for tool change without modification. I do want to see how the S3D settings produce one first though for comparison. (Probably should have picked an easier one to start with - saw this "Julia Vase" thing in one of the vids and just grabbed a copy for testing. Taking forever! :shock: )

User avatar
Tim
Posts: 1205
Joined: Thu Apr 10, 2014 2:19 pm
Location: Poolesville, Maryland
Contact:

Re: Simplify 3D, G-Code changes, questions & answers

Post by Tim » Tue Oct 06, 2015 9:53 pm

Jules wrote:The thread usually falls off before it hits the bed, and by the time the right nozzle reaches the bed, the movement of the print head after the left nozzle wipe takes the right nozzle off at an angle towards the center, so it doesn't follow the path of the left nozzle wipe.
Okay, I thought it looked like a straight wipe horizontally across, but I'll look closer at it. At any rate, I'm printing mostly with PETg, and it never stops dripping. Not like the eSUN wood filament, which dripped like it was still extruding, but still it's a steady ooze that is continuous, even after retracting it back 10mm.
What i did discover, is that if you don't want to mess with making sure that you have enough filament to get things started on a two color print, and you haven't worked out a handy tool change script yet, print with both a Shield and a Brim. The Brim attaches itself to the Shield, not the print, and in addition to keeping the shield upright and attached, it gives some priming time for the nozzles that it really needs to get things going smoothly.
I discovered that too, when I was doing the 2-color dice. It's a useful trick. Whether or not you have a tool change script. I didn't do that on my first print, and the drip shield came off the plate mid-print. It actually printed fine---it's the 8-sided die that I took the picture of---but I had to babysit it through the length of the print. After that I changed the shield to two lines thick, until I hit upon the idea of sizing it so that the first layer of the drip shield became a continuation of the brim. With that done, I no longer had any issues with the drip shield popping off.

Post Reply