Page 1 of 1

Warm, Purge, Print, Purge, Retract, Cool, Wipe

Posted: Mon Dec 02, 2019 9:34 pm
by rflulling
Hello S3D and community!
I am operating a heavily modified FT-6. The controller is switched out with a SKR PRO 1.1, Y-axis is now dual not series, and the Primary extruder is dual direct. Many more lovely changes coming as time and cash permits this beast shall become a true machine. Edit: It's runs Marlin 2.0.x firmware
But for now I am working to resolve an issue. I have never been a fan of retractions. Generally leave more a mess than it is worth. But now that I am working with dual extruders I cannot simply Coast my way to victory on each layer. No, I must retract. I wish it were that simple. Because if I retract to far the filament develops a bump and must be remove and reinserted. If it is left to low it will continue to sputter out little blobs and strings.

What I need is a reverse purge. I need a purge, retract and then iron of the same layer with a retracted hot end, as the hot end also cools to a less likely to make blobs temp.

I have invested a lot of time into understanding how S3D generates the slice file and if multiple Processes are used, what scripts are pulled when and where. I have learned a fair bit and a fair bit is still deeply troubling. Some will be posted as a bug report. Needless to say I think via the layer change and post processing script I think it is possible to make my needs resolved. I have already found scripting to instruct a reduction of temp (if I can get it to work), on each individual extruder as they are called. However it would be nice to activate such functions before lines are completed allowing heating and cooling to happen in parallel to other instructions being executed. -My experience has been, once the extruder stops moving it should NEVER stop, because that's when bad things happen. So the temp changes should happen in parallel, not as a linear timeline function. Anyway, most of my fight has been getting Purge Pillars to even appear. That generator is finicky! Edit: I blame the auto configure extruders function. As things set there are active even if they are not selected to be active. This I will detail in a bug ticket later.
So lets assume for a moment that I can generate all the towers I need and they appear as needed, and the temps change as needed. What I am left with is an issue where each head needs to execute a purge twice and an Iron/Wipe once. I have some lovely graphics in the works. But they also are not ready just yet. The point is that when a head switches, it needs to purge, then retract, then wipe, while the other head is warning up so that it can then purge and start printing.

Currently S3D does not adjust temp between Tool Changes on it's own. It generates an extrude pre print as I specify in start up scripts. Purges are generated I think before each layer of a process is generated. But although it looked like the software fought making 2 towers for the same head if more than one process called it it, it for sure does and I watch it cross this line often. The line being the other material with a different color. Using a wall is better than nothing but it is still messy.
You wanted to know why my towers aren't showing up? Well that's a mess. Apparently there is some trickery or instability in the engine. I think part of it is an idea that all towers must generate from the build layer. The build layer only uses one of the two heads. When it does represent both heads sometimes they align for one tower sometimes they pop up as two. Really I need one on each side near the respective head. If I did not use a build layer I think most of them would show up. However S3D likes to favor certain processes. This means that things like skirts, towers and scripts are only respected if that process is executed. Making this worse, sometimes this flips at random and grouping processes rearranges the sort sequence of defined processes. So even if #1 has my scripts, if I group, #3 might be now first. S3D likes to most often execute things in top slot first and ignore everything else. There is no support for process specific scripting.

It has been a long two weeks of fighting this.

Before all this I was fighting random retracts and filament ejections at the start of files... fun times.

Re: Warm, Purge, Print, Purge, Retract, Cool, Wipe

Posted: Tue Dec 03, 2019 2:51 am
by rflulling
This code lised in some help manuals and under support. Doesn't seem to do anything.
If placed in the Post Processing. It seemed like stuff was removed. If placed in the the Tool Change script box, the code was cut and paste into the Gcode. The printer clearly has no idea what to do with this code. EDIT: This forum sucks the spaces out of the code. I over looked adding a space back in after the IF statement, causing it to become one long variable IFNEWTOOL. This is fixed and S3D does compile the code correctly. However this does not preclude or negate the importance of this topic. This item is helpful, though it also slows the print considerably. This is not the solution, just a piece of it. The issue remains.

Code: Select all

G1 X237 Y25 F1800
{IF NEWTOOL=0}M104 S198 T1
{IF NEWTOOL=0}M109 S[extruder0_temperature] T0
{IF NEWTOOL=1}M104 S198 T0
{IF NEWTOOL=1}M109 S[extruder1_temperature] T1

Re: Warm, Purge, Print, Purge, Retract, Cool, Wipe

Posted: Tue Dec 03, 2019 8:07 am
by Wallabear
I am not sure what Firmware you are running on your board, but I recently updated to a Duet3D board. I found that I can write g-code processes and save them in the sys folder, when I need to use them is simply call from the scripts using an M98 (M98 P/sys/cool_down.g ; call cooldown). I know if you are like me you probably do not want to sink more money into a part that you already upgraded/replaced but from what I am learning with the duet, it is worth the investment. If you have a script that you are trying to see if it will work I can see if I can write it into my duet scripts and see how it reacts on my system.

Re: Warm, Purge, Print, Purge, Retract, Cool, Wipe

Posted: Tue Dec 03, 2019 9:04 am
by rflulling
I actually have both Duet Maestro and SKR PRO 1.1 running Marlin 2.0.x By default the Marlin is nothing like Duet. However I know of no reason that Marlin could not be configured to operate much the same as Duet. Infact the SKR PRO should be able to run a Web Interface much the same. The hardware is not much different. All that said, thank you for the suggestion. I don't think it creates the solution I need. But it is something to consider as a alternative path to a solution.