Welcome! Log In Create A New Profile

Advanced

2 nozzle printing setup

Posted by appjaws1 
2 nozzle printing setup
November 28, 2014 11:07AM
I am attempting to set up my 2 nozzle printer again and have obviously got some setting wrong. I wanted to check dc42's and zpl's latest firmware with a 2 nozzle machine.

@zombiepantslol Is it possible for you to include dc42's latest change to the M305 Xx so I can test your pause and resume on a 2 nozzle machine?

In slic3r, when the print is loaded the machine is confused because it starts with Head 1,waits for active temp to be reached, then switches to Head 2 and waits for the active temperature to be reached then back to Head 1 and when the temperature is reached starts printing the skirt.
It prints one loop and then goes to the wait position and swaps Heads. This happens for 4 cycles before it eventually starts to print the object

It seems that it wants to ensure that the hot ends are both at operating temperature and of course when it switches from active to standby, the freed hot end's temperature is reduced to the standby setting..

If I set the active and standby temperatures to the same value then the skirt is printed one loop at a time by each hot end but in the sclic3r settings I only have 1 loop defined and a skirt height of 1 layer.

this is my custom g-code section:-
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
G10 P1 S195 R155
G10 P2 S195 R155
M203 X9000 Y9000 Z500 E3000
M201 X500 Y500 Z10 E300; acceleration tweaks for improved finish
G1 Z5 F200 ; lift nozzle
G1 X2 Y50 F2000; Go to wait for warm position
M140 S[first_layer_bed_temperature] ; Set bed heater
M116 ; Wait for everything (Bed temp)
M104 S[first_layer_temperature] ; Set hotend
M116 ; Wait for everything (Hotend temp)
M563 S1
M106 S0
T1; Select extruder


So the problem is what controls the skirt printing in sclic3r when you have more than one nozzle.
If I do without a skirt, how to best ensure that the filament is ready to flow The test print I am using at the moment has a nozzle change at a height of 5mm, I am using a layer height of 0.2mm so the change happens at layer 25.
As you can see from the photo, when the second colour starts not enough filament is extruded at the beginning so I have gaps at the joint.



In the customised g-code section how can I set it so that only the active hot end is waited for? Has the M116 command got any parameters, i.e. "P" to select which heater to wait for.

Do I need the G10 entries in the custom g-code section of slic3r?
This is my config file:-

M111 S0 ; Debug off
M501 S1 ; use flash
M550 Pappjaws-Ormerod ; Machine name (can be anything you like)
M551 Preprap ; Machine password (currently not used)
M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
M552 P192.168.1.14 ; IP address
M553 P255.255.255.0 ; Netmask
M554 P192.168.1.1 ; Gateway
M555 P2 ; Set output to look like Marlin
G21 ; Work in millimetres
G90 ; Send absolute corrdinates...
M83 ; ...but relative extruder moves
M208 X200 Y210 Z180 ; Set axis travel
M208 X5 S1 ; Set axis minimum
M906 X950 Y950 Z950 E850 ; Set motor currents (mA)

;Single nozzle
;M301 H1 S1 ; Single Nozzle - Set S parameter for heater 1
;M305 P0 H48 L-26 X2 ; Single Nozzle - H and/or L values - bed thermistor ADC correction X2 DueX4 connector
;M305 P1 H48 L-26 X1 ; Single Nozzle - H and/or L values - first nozzle thermistor ADC correction
;M563 P1 D0 H1 ; Single Nozzle - Define tool 1
;G10 P1 X0 Y0 Z0 S0 R0 ; Single Nozzle - Set tool 1 offset, operating and standby temperatures

;Two nozzle
M301 H1 S1 ; Two Nozzle - Set S parameter for heater 1
M301 H2 S1 ; Two Nozzle - Set S parameter for heater 2
M305 P0 H48 L-26 X2 ; Two Nozzle - H and/or L values - bed thermistor ADC correction - X2 DueX4 connector
M305 P1 H48 L-26 X1 ; Two Nozzle - H and/or L values - first nozzle thermistor ADC correction - X1 Duet Not end connector
M305 P2 H48 L-26 X0 ; Two Nozzle - H and/or L values - second nozzle thermistor ADC correction - X0 Duet bed connector
M563 P1 D0 H1 ; Define tool 1
G10 P1 X6 Y0 Z0 S195 R155 ; Set tool 1 offset, operating and standby temperatures
M563 P2 D1 H2 ; Define tool 2
G10 P2 X-6 Y0 Z0 S195 R155 ; Set tool 2 offset, operating and standby temperatures

M92 E420:420 ; Set extruder steps per mm
M558 P1 ; Use an unmodulated Z probe
G31 Z1.0 P500 ; Set the probe height and threshold
M557 P0 X35 Y35 ; Five...
M557 P1 X35 Y180 ; ...probe points...
M557 P2 X185 Y180 ; ...for bed...
M557 P3 X185 Y35 ; ............
M557 P4 X100 Y105 ; ...levelling
M556 S74.5 X-0.56 Y0.18 Z0.267 ; Put your axis compensation here
M201 X800 Y800 Z15 E1000 ; Accelerations (mm/s^2)
M203 X15000 Y15000 Z100 E3600 ; Maximum speeds (mm/min)
M566 X600 Y600 Z30 E20 ; Minimum speeds mm/minute
M140 R45 ; set bed standby temperature to 45C
M106 S0 ; set extra fans off

What is the correct way to set up the config and custom G-code section? so that Head 1 and Head 2 heats up, each does 1 loop of the skirt and then the object print starts.

So just as a test I have printed this test part with no skirt and first of all it waited for Head 1 to reach temp then switched to Head 2 and waited for that to reach temp, Then it was back to Head 1 and the object was printed.

Why does it not start the print as soon as Head 1 reaches temperature and ignore Head 2 until required?

sorry this is so long

Paul


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Re: 2 nozzle printing setup
November 28, 2014 01:53PM
Just wanted to say that I implemented zpl's pause/resume macros in my recent release, although I haven't had tie to test them yet. My pause feature isn't as instant as zpl's because it waits for the move queue to empty; but OTOH if you halt the move queue immediately, you are likely to get missed steps (and hence the incorrect position when you resume) if you interrupt the move queue on a move that doesn't have a near-zero end speed. I'll revisit this when I have finished my other changes to the Move code.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: 2 nozzle printing setup
November 28, 2014 03:28PM
Quote
dc42
... but OTOH if you halt the move queue immediately, you are likely to get missed steps (and hence the incorrect position when you resume) if you interrupt the move queue on a move that doesn't have a near-zero end speed. I'll revisit this when I have finished my other changes to the Move code.

That is not entirely correct: In fact my fork tries to decelerate the current move, but if it is very short (e.g. when printing arcs), it might cause missed steps. But this is quite unlikely to happen when printing criss-cross infill patterns, and at least I think it makes most sense to pause prints exactly during these (in order to reduce blobs at perimeters). Nonetheless I'm already looking forward to your improvements smiling smiley

Paul, I've merged in most of dc42's changes, but I'm still looking into another issue. Once I've got everything working, I'll publish a new release.
Re: 2 nozzle printing setup
November 28, 2014 05:39PM
Quote
dc42
Just wanted to say that I implemented zpl's pause/resume macros in my recent release, although I haven't had tie to test them yet. My pause feature isn't as instant as zpl's because it waits for the move queue to empty; but OTOH if you halt the move queue immediately, you are likely to get missed steps (and hence the incorrect position when you resume) if you interrupt the move queue on a move that doesn't have a near-zero end speed. I'll revisit this when I have finished my other changes to the Move code.

Is this the release with the M305 Xx changes that you produced? If so the pause and resume is not working the same as zpl's, when I tried it earlier the head did not return to the correct position and appeared not to have used the 2 macros.

I suppose this could be because I now have 2 nozzles and when I tested zpl's firmware for the pause and resume I was operating as a single nozzle machine.

@dc42 and @zombiepantslol Have you any comments about the problem when starting a 2 nozzle print as outlined above. David, how did you overcome this problem?

again thank you both for your time and efforts.

Paul


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Re: 2 nozzle printing setup
November 28, 2014 06:28PM
Hi Paul, I did notice that slic3r wants to heat each nozzle in turn before printing anything. I did not see any problems with the skirt. AFAIR I had it set to 2 loops, and it printed 2 loops of one colour, then 2 loops of the other.

I'll take a look at the pause/resume macros when I get a chance. My last release was a bit rushed as it wasn't planned and I had a VAT deadline looming. I've found an issue with it that has implications for the TFT control panel, so I will need to do another release soon.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: 2 nozzle printing setup
November 29, 2014 05:44AM
@dc42 and @zombiepantslol
slic3r and simplify3d expect both heaters to be up to temperature at the start and during a print, the fact that we use a standby setting seems to confuse the software because it is always trying to heat up the standby heater. I have had prints that have heated Head1 and then Head 2, switched back to Head1 and start printing when the temperature of head1 is still cooling.

To avoid the confusion at the start of a 2 nozzle print would it be possible to parameterise the M116 - wait for All Temperatures, to include a "P" parameter so that the wait can be applied to individual heaters. Or maybe add the 'P" to M109.

Ideally, some Mcode parameter should be able to take a "+" or "-" indicator so that on tool change the current selected tool can be increased to the next tool or decreased to the preceding tool and then a wait Mcode for that specific heater to reach temperature.

In slic3r, to wait for the next extruder to heat up to temperature from standby, placeholder variables, [previous_extruder] and [next_extruder] could be used in the tool change section, but I'm not sure of the format. Or would this work now :- M116 [next_extruder]
I don't think simplify3d has the facility to use placeholder variables so I think we need a universal solution.


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Re: 2 nozzle printing setup
November 29, 2014 07:15AM
Hi Paul, my fork has supported the P parameter on M116 for many versions now. I use it in the tool change files to wait for the new head to heat up without waiting for the old one to cool down. M109 supports a T parameter and slic3r uses it.

I've not seen the problem you refer to i.e. trying to print before the head is up to temperature. If that is happening on your system then I think your tool change files must be wrong.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: 2 nozzle printing setup
November 30, 2014 12:26PM
On tool change I need the external fans to switch off M106 S0 but when the new Head starts to print, he external fan should resume to whatever speed was set previously in the g-code file. What is the best way to achieve this?

If I have an object which has 3 colour bands, slic3r produces in the g-code file:-

M104 S191 T0 ; set temperature
M104 S191 T1 ; set temperature
M104 S191 T2 ; set temperature
M140 S63 ; set bed temperature

I believe our firmware changes T0 to be T1, T1 to be T2 and T2 to be ???
So what happens in the print is that the first 2 bands are printed fine but for the third band the hot end is just moving about above the object with nothing extruded. I think the firmware thinks that the T2 is now T3 but of course we do not have a T3

What should happen is that the T2 should become T1 (T0+1)

So the print order should be layer1 to layer20 - extruder1, layer21 to layer40 - extruder2, layer41 to layer60 - extruder1

Any thoughts?

Paul


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Re: 2 nozzle printing setup
November 30, 2014 01:06PM
1. Regarding the fan on/off, there is currently no support in the firmware to switch the fan off while remembering the current setting, or to switch it on again at the previously remembered setting. I suggest we extend M106 parameter to support an additional R parameter (not P because that would logically be used to select the fan number if there is more than one). M106 R0 would turn the fan off but remember the PWM value. M106 R0 Sxxx would set the remembered PWM value to xxx but turn the fan off. M106 R1 would turn the fan on at the remembered value. M106 R1 Sxxx would behave just like M105 Sxxx. As you are using zpl's firmware, I'll leave him to implement this, or something like it.

2. In order to handle the renumbering of tools from slic3r's T0, T1, T2 to T1, T2, T3, I added an option to the M563 command. You probably have command M563 S1 in your custom start gcode to renumber the tools. But unless you define tool 3, then the printer will do exactly as you describe when trying to print using tool 3. Why do you think slic3r's tool 2 should be mapped to T1? You could add another M563 command in config.g to define tool 3 as a copy of tool 1 if you wish. There is a possibility that the active and standby temperatures might get confused, but since the old tool is set to standby before the new tool is set to active, I suspect it will work OK.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: 2 nozzle printing setup
November 30, 2014 02:18PM
Thank you for your response
Quote
dc42
1. Regarding the fan on/off, there is currently no support in the firmware to switch the fan off while remembering the current setting, or to switch it on again at the previously remembered setting. I suggest we extend M106 parameter to support an additional R parameter (not P because that would logically be used to select the fan number if there is more than one). M106 R0 would turn the fan off but remember the PWM value. M106 R0 Sxxx would set the remembered PWM value to xxx but turn the fan off. M106 R1 would turn the fan on at the remembered value. M106 R1 Sxxx would behave just like M105 Sxxx. As you are using zpl's firmware, I'll leave him to implement this, or something like it.

I think this sounds like a good solution and look forward to it being included is both firmware versions when you have time.

Quote
dc42
2. In order to handle the renumbering of tools from slic3r's T0, T1, T2 to T1, T2, T3, I added an option to the M563 command. You probably have command M563 S1 in your custom start gcode to renumber the tools. But unless you define tool 3, then the printer will do exactly as you describe when trying to print using tool 3. Why do you think slic3r's tool 2 should be mapped to T1? You could add another M563 command in config.g to define tool 3 as a copy of tool 1 if you wish. There is a possibility that the active and standby temperatures might get confused, but since the old tool is set to standby before the new tool is set to active, I suspect it will work OK.

What if I wanted to print something like the traffic cone which has 5 bands?
Am I thinking about this the wrong way and should I slice the object differently?
Let's take the traffic cone as an example. If I wanted to change the colour on alternate bands how do I accomplish this using openscad or slic3r?
I just assumed that each band would be allocated an extruder but that is not how it works. I need to define band 1,3,5 as extruder 1 and band 2,4 as extruder 2 but I don't know how to do this.

Any help appreciated

Paul

Edited 1 time(s). Last edit at 11/30/2014 02:34PM by appjaws1.


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Re: 2 nozzle printing setup
November 30, 2014 02:55PM
The traffic cone I downloaded from thingyverse here [www.thingiverse.com] has 5 bands but the STL files are for just 2 extruders.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: 2 nozzle printing setup
November 30, 2014 04:47PM
Quote
dc42
The traffic cone I downloaded from thingyverse here [www.thingiverse.com] has 5 bands but the STL files are for just 2 extruders.

Yes I have printed that object. I was just using that as an example.
How do you actually split an object into 5 parts and then produce a stl file for the alternate bands which would have an extruder assigned.


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Re: 2 nozzle printing setup
December 01, 2014 04:09AM
Start with an STL file for the whole thing and import it into OpenScad. Or start with an OpenScad model of the whole thing. Then subtract cubes from it to get just the band or bands you want.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: 2 nozzle printing setup
December 01, 2014 05:04AM
Thanks David, Can you please pass me the magic wand so that I can wave it around and all issues will be fixed without me having to engage brain.
Paul


appjaws - Core XYUV Duet Ethernet Duex5
firmware 3.1.1 Web Interface 3.1.1
Ormerod 1-converted to laser engraver, Duet wifi
OpenSCAD version 2020.07
slic3r-1.3.0, Simplify3D 4.1.2, Cura-4.4.1
Sorry, only registered users may post in this forum.

Click here to login