Creating a new IDEX 3D Printer with Duet 2 WIFI
-
@dc42 the developers of Duer3D and RepRap were able to create such complex software and nevertheless do not have detailed instructions for setting up an IDEX printer, the process of slicing, extruder selection, initial and final GCode, Slicer selection and much more are not described. Perhaps I missed something and such an instance exists?
-
@dc42 I also have one question. I am going to use Duet equipment in my invention and further replicate it, can I get support from the software developers in my printer settings?
-
@DE-TechArt said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
@dc42 the developers of Duer3D and RepRap were able to create such complex software and nevertheless do not have detailed instructions for setting up an IDEX printer, the process of slicing, extruder selection, initial and final GCode, Slicer selection and much more are not described. Perhaps I missed something and such an instance exists?
Have you read https://duet3d.dozuki.com/Wiki/ConfiguringMultipleIndependentXcarriagesCartesian#Section_Configuring_tools and the section on tool changing after? If so, what do you think is missing?
Generally our documentation covers setting up the Duet to work as transparently as possible with slicing software. However, setting up the slicing software is beyond our control, with so many options, though we will try to support you to get it working. With Duet customers building a huge range of exotic and wildly different machines, we are not able to create documentation for every conceivable permutation.
Ian
-
@DE-TechArt said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
@sebkritikel This is a rather complicated method. I do not think that a beginner and an ordinary consumer can handle it.
And why are you against bcn3d Cura? it was designed specifically for IDEX printerCura is complex software, and has the capacity to create machine profiles for your customers to use. Have you tried creating a machine profile, extruder profiles, and print settings to match the capabilities of your machine? You can post on their forums for help potentially on creating Cura profiles for mirror/duplication mode, as that is more specific to Cura than Duet.
https://github.com/Ultimaker/Cura/wiki/Adding-new-machine-profiles-to-Cura
https://github.com/Ultimaker/Cura/wiki/Definition-Files-Explained
Example: https://github.com/Ultimaker/Cura/blob/master/resources/definitions/ultimaker_original.def.jsonFor my IDEX machine, I have been (slowly) creating the appropriate Cura definition files, and hope to one day make it seamlessly work with mirror and duplication modes, but I am not there yet.
The Duet electronics hardware, RepRapFirmware, and community here are excellent at creating machines with intricate macros, amazing kinematics - but some effort is on the individual 3D printer designer to put all of the final touches in place.
You can certainly experiment with the BCN3D Cura, but keep in mind a few things.
- It is a "fork" of a much older version of Ultimaker Cura
- It is designed for use with their custom version of the Marlin Firmware, not RepRapFirmware
https://github.com/BCN3D
https://github.com/BCN3D/Marlin
https://github.com/BCN3D/BCN3DSigmax-FirmwareHere is the start of a GCODE file made by BCN3D Cura for mirror mode. Marlin GCODE
;FLAVOR:Marlin ;TIME:8871 ;Filament used: 1.69044m ;Layer height: 0.15 ;Extruders used: T0 0.4 T1 0.4 ;BCN3D_FIXES ;Generated with Cura_SteamEngine 2.1.5 T0 M190 S60 M104 S190 M104 T1 S190 ;Fixed T1 temperature M109 S190 M109 T1 S190 ;Fixed T1 temperature M82 ;absolute extrusion mode ;Sigma ProGen 2.2.0 (Build 14CJ1301) ;BCN3D Fixes applied ; - Fix start GCode ; - Fix Acceleration/Jerk commands ; - Z Hop At Layer Change G21 ;metric values G90 ;absolute positioning M204 S600 ;set default acceleration M205 X12.5 Y12.5 ;set default jerk M107 ;start with the fan off G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops G1 Z5 F200 ;safety Z axis movement T1 ;switch to the right extruder G92 E0 ;zero the extruded length G1 F47.4 E15 ;extrude 15mm of feed stock G92 E0 G4 P2000 ;stabilize hotend's pressure T0 ;switch to the left extruder G92 E0 ;zero the extruded length G1 F47.4 E15 ;extrude 15mm of feed stock G92 E0 G4 P2000 ;stabilize hotend's pressure M605 S6 ;enable mirror mode M92 E510.9 M500 G4 P1 G4 P2 G4 P3 ;LAYER_COUNT:80 ;LAYER:0 M107 M204 S1175 M205 X9.38 Y9.38 G0 F3600 X31.809 Y179.29 Z0.2 M204 S470 ;TYPE:WALL-OUTER
M605 S6 ;enable mirror mode
Is how the BCN3D printers know to switch to Mirror or duplication mode, however that is a custom command created by BCN3D, and not used in any other printer.
As far as additional hardware help - happy to be of assistance, however I do not know exactly how items like your fans are wired, what steps you have tried to troubleshoot problem areas, etc.
-
@droftarts Well, of course I read this article but unfortunately it is for software 2.0 I'm using new software RRF3.0. also in this article it is not specified how to deal with g-code processing, that is, which slicer to use and how to configure it for an idex 3D printer.
Before I ask something I have been studying these questions for a long time on my own, but unfortunately it takes a lot of time and the answer is not always found. -
@sebkritikel I understand you well, the cura slicer is constantly updated and new features appear in it. Unfortunately, this method is not entirely convenient for ordinary consumers. the bcn3d slicer is much better for these purposes, since in it you can directly see the process of creating a duplicate and mirror copy.
Unfortunately, the bcn3d technical support did not provide me with a solution for my printer, they offered me to use the Marlin software with which I do not agree at the moment as I want to use the duet motherboard.
I even managed to fix the work of this slicer to some extent. when choosing duplicate mode it adds M605 S5 when choosing mirror M605 S6. using post processing - find and replace I was able to fix it on T2 or T3.
As for the kinematics, everything works perfectly when selecting 1 extruder (command T0) the first extruder is running, the heater turns on, the cooling turns on and the process continues. when extruder 2 (T1) is selected, 2 extruders are used and everything works fine too.but the following problems arose. when you select the duplicate or mirror mode, only one extruder heats up - left, but both extruders come in motion.
Most likely I made a mistake somewhere in the tools. Although I did absolutely as stated in the description. -
; Divers
;M564 H0
; General preferences
m80 ; Power ON
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"DE-TechArt IDEX V1" ; set printer name; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0 S0 ; physical drive 0
M569 P1 S1 ; physical drive 1
M569 P2 S1 ; physical drive 2
M569 P3 S1 ; physical drive 3
M569 P5 S1 ; physical drive 4
M569 P6 S1 ; physical drive 5
M584 X0 Y1 U3 Z2 E5:6 ; set drive mapping
M350 X16 Y16 U16 Z16 E16:16 I1 ; configure microstepping with interpolation
M92 X100 Y100 U100 Z1200 E970:970 ; Set steps per mm
M566 X620 Y620 U620 Z80 E500:500 P1 ; Set maximum instantaneous speed changes (mm/min)
M203 X12000 Y12000 U12000 Z1700 E3600:3600 ; Set maximum speeds (mm/min)
M201 X1900 Y1900 U1900 Z150 E800:800 ; Set accelerations (mm/s^2)
M906 X850 Y850 U850 Z600 E300:300 I20 ; Set motor currents (mA) and motor idle factor in per cent; Axis Limits
M208 X115 Y115 U115 Z295 ; Set axis maxima
M208 S1 X-115 Y-115 U-115 Z0 ; Set axis minimum; Endstops
M574 X1 S1 P"!xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y1 S1 P"!ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 U2 S1 P"!e0stop" ; configure active-high endstop for low end on U via pin ustop; Z-Probe
M558 P1 C"!^zprobe.in" H8 F6500 T5000 ; Set Z probe type to inverted, unfiltered piezo and the dive height + speeds
G31 P900 X0 Y0 U0 Z-0.82
M557 X-58:58 Y-58:58 S40:40 ; Define mesh grid; Heaters
M308 S0 P"e5temp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120CM308 S1 P"duex.e2temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin duex.e2temp
M950 H1 C"duex.pwm1" T1 ; create nozzle heater output on duex.pwm1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limitM308 S2 P"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin e1temp
M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2
M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit; Fans
M950 F0 C"duex.fan8" Q500 ; create fan 0 on pin duex.fan8 and set its frequency
M106 P0 S0 H-1 C"Blower X"; set fan 0 value. Thermostatic control is turned off
M950 F1 C"duex.fan7" Q500 ; create fan 1 on pin duex.fan7 and set its frequency
M106 P1 S0 H1 T45 C"Fan X" ; set fan 1 value. Thermostatic control is turned onM950 F2 C"fan0" Q500 ; create fan 2 on pin fan0 and set its frequency
M106 P2 S0 H-1 C"Blower U"; set fan 1 value. Thermostatic control is turned off
M950 F3 C"fan1" Q500 ; create fan 3 on pin fan1 and set its frequency
M106 P3 S0 H2 T45 C"Fan U" ; set fan 3 value. Thermostatic control is turned onM950 F4 C"duex.fan5" Q500 ; create fan 4 on pin duex.fan6 and set its frequency
M106 P4 S1 H-1 C"LED" ; set fan 4 value. Thermostatic control is turned offM950 F5 C"duex.fan6" Q500 ; create fan 4 on pin duex.fan6 and set its frequency
M106 P5 S1 H-1 C"LED" ; set fan 4 value. Thermostatic control is turned off; Tools
M563 P0 D0 H1 X0 F1 S"X" ; define tool X tool 0 uses extruder 1, heater 1 and fan 1
G10 P0 X0 Y0 Z0 R0 S0 ; set tool 0 axis offsetsM563 P1 D1 H2 X3 F3 S"U" ; define tool U tool 1 uses extruder 1, heater 2 and fan 3
G10 P1 X0 Y0 U0 Z0 S0 R0 ; set tool 1 axis offsetsM563 P2 D0:1 H1:2 X0:3 F1:3 S"XU-Copy" ; define tool X+U copy mode
G10 P2 X0 Y0 U-113 S0 R0 ; set tool offsets and temperatures
M567 P2 E1:1 ; set mix ratio 100% on both extrudersM563 P3 D0:1 H1:2 X0:3 F1:3 S"XU-Mirror" ; define tool X+U mirror mode
G10 P3 X5 Y0 U-5 S0 R0 ; set tool offsets and temperatures
M567 P3 E1:1 ; set mix ratio 100% on both extruders; Miscellaneous
M501 ; load saved parameters from non-volatile memory; CPU temp calibration
M912 P0 S-11; Automatic power saving
M911 S22 R23 P"M913 X0 Y0 U800 G91 M83 G1 Z3 E-1 F1000" ; Set voltage thresholds and actions to run on power loss; tfree0.g
M83 ; relative extruder movement
M106 S0 ; turn off our print cooling fan
G91 ; relative axis movement
G1 Z3 F500 ; up 3mm
G90 ; absolute axis movement;tfree1.g:
M83 ; relative extruder movement
M106 S0 ; turn off our print cooling fan
G91 ; relative axis movement
G1 Z3 F500 ; up 3mm
G1 H1 X-120 F5000
G90 ; absolute axis movement;tfree2.g:
M83 ; relative extruder movement
G1 E-2 F3600 ; retract 2mm
M106 S0 ; turn off our print cooling fan
G91 ; relative axis movement
G1 Z3 F500 ; up 3mm
G90 ; absolute axis movement;tfree3.g:
M83 ; relative extruder movement
G1 E-2 F3600 ; retract 2mm
M106 S0 ; turn off our print cooling fan
G91 ; relative axis movement
G1 Z3 F500 ; up 3mm
G90 ; absolute axis movement
G28 X U ; home the X and U carriages
M579 U1; tpost0.g
M106 R2 ; restore print cooling fan speed
M116 P0 ; wait for tool 0 heaters to reach operating temperature
M83 ; relative extruder movement
G1 E2 F3600 ; extrude 2mm;tpost1.g:
M106 R2 ; restore print cooling fan speed
M116 P1 ; wait for tool 1 heaters to reach operating temperature
M83 ; relative extruder movement
G1 E2 F3600 ; extrude 2mm;tpost2.g:
M106 R2 ; restore print cooling fan speed
M116 P2 ; wait for tool 2 heaters to reach operating temperature
M83 ; relative extruder movement
M567 P2 E1:1 ; set tool mix ratio
M568 P2 S1 ; turn on mixing
G1 E2 F3600 ; extrude 2mm from both extruders;tpost3.g:
M106 R2 ; restore print cooling fan speed
M116 P2 ; wait for tool 2 heaters to reach operating temperature
M83 ; relative extruder movement
M567 P2 E1:1 ; set tool mix ratio
M568 P2 S1 ; turn on mixing
G1 E2 F3600 ; extrude 2mm from both extruders
M579 U-1 -
@sebkritikel, as I understand it you have configured RRF to make X0 Y0 the centre of the bed, which is good. Have you also configured Cura so that it knows that X0 Y0 is the centre of the printable area?
-
@dc42 Yes, I adjusted the center of the bed everywhere.
-
@dc42
M563 P2 D0:1 H1:2 X0:3 F1:3 S"XU-Copy" ; define tool X+U copy mode
G10 P2 X0 Y0 U-113 S0 R0 ; set tool offsets and temperatures
M567 P2 E1:1 ; set mix ratio 100% on both extrudersM563 P3 D0:1 H1:2 X0:3 F1:3 S"XU-Mirror" ; define tool X+U mirror mode
G10 P3 X5 Y0 U-5 S0 R0 ; set tool offsets and temperatures
M567 P3 E1:1 ; set mix ratio 100% on both extrudersIn these settings, I selected the correct value and both extruders take their desired position.
-
Your tool offsets for T2 and T3 are wrong. You should have equal but opposite X and U offsets in the G10 commands. For example if the lower limit printable by the X tool is -150 then the X offset should be half of that, so -75. Likewise the U offset should be half the maximum positive printable U value, which in this example would be half of +150.
-
@dc42 said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
Your tool offsets for T2 and T3 are wrong. You should have equal but opposite X and U offsets in the G10 commands. For example if the lower limit printable by the X tool is -150 then the X offset should be half of that, so -75. Likewise the U offset should be half the maximum positive printable U value, which in this example would be half of +150.
So I did at the beginning. but when using bcn3d slicer i had to adjust my firmware.
I myself move my model sideways from the center.
I am not saying that this is correct, but at least it works
This is now set up so that the two extruders do not touch each other while running. -
@dc42 said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
@sebkritikel, as I understand it you have configured RRF to make X0 Y0 the centre of the bed, which is good. Have you also configured Cura so that it knows that X0 Y0 is the centre of the printable area?
Your comment made me stop and think, and in some ways I have myself to blame for some frustrations! Haha
Yes, Cura knows that X0, Y0 is the center of the printable area... HOWEVER while initially playing with duplication mode, I my G10 to:G10 P2 X0 Y0 U-263.5 S0 R0
Rather than, what would probably be more appropriate:
G10 P2 X131.75 Y0 U-131.75 S0 R0
Combine that with my fiddlings with Standard Cura, and I think I would be set. I think @DE-TechArt is on the right path with BCN3D Cura (Nicely done!!!)
(Reading further, I believe that is exactly how I should have set the G10 parameter)
@DE-TechArt said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
@sebkritikel I understand you well, the cura slicer is constantly updated and new features appear in it. Unfortunately, this method is not entirely convenient for ordinary consumers. the bcn3d slicer is much better for these purposes, since in it you can directly see the process of creating a duplicate and mirror copy.
Unfortunately, the bcn3d technical support did not provide me with a solution for my printer, they offered me to use the Marlin software with which I do not agree at the moment as I want to use the duet motherboard.
I even managed to fix the work of this slicer to some extent. when choosing duplicate mode it adds M605 S5 when choosing mirror M605 S6. using post processing - find and replace I was able to fix it on T2 or T3.
As for the kinematics, everything works perfectly when selecting 1 extruder (command T0) the first extruder is running, the heater turns on, the cooling turns on and the process continues. when extruder 2 (T1) is selected, 2 extruders are used and everything works fine too.but the following problems arose. when you select the duplicate or mirror mode, only one extruder heats up - left, but both extruders come in motion.
Most likely I made a mistake somewhere in the tools. Although I did absolutely as stated in the description.Nicely done - I forgot BCN3D Cura also had post processing.
Can you upload a GCODE file of a print? I cannot recall specifically the details, but BCN3D might generate additional temperature commands for specifically T0 and T1 prior your start GCODE being injected into the file.
I'm not sure where the area in the red box is being created... perhaps the BCN3D Sigma(x) profile JSONs?
-
@sebkritikel said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
@dc42 said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
@sebkritikel, as I understand it you have configured RRF to make X0 Y0 the centre of the bed, which is good. Have you also configured Cura so that it knows that X0 Y0 is the centre of the printable area?
Your comment made me stop and think, and in some ways I have myself to blame for some frustrations! Haha
Yes, Cura knows that X0, Y0 is the center of the printable area... HOWEVER while initially playing with duplication mode, I my G10 to:G10 P2 X0 Y0 U-263.5 S0 R0
Rather than, what would probably be more appropriate:
G10 P2 X131.75 Y0 U-131.75 S0 R0
Combine that with my fiddlings with Standard Cura, and I think I would be set. I think @DE-TechArt is on the right path with BCN3D Cura (Nicely done!!!)
(Reading further, I believe that is exactly how I should have set the G10 parameter)
Important corrections to the above post - I got to a somewhat decent point with Cura removing some of my crazy steps from many posts back. G10 P2 X131.75 Y0 U-131.75 S0 R0 does make sense, however with Cura and my next step, keeping it at G10 P2 X0 Y0 U-263.5 S0 R0 is ideal.
Why?
Goes back to my comment on creating the third tool (T2, extruder 3 in Cura). You want the X offset to be equal to the U-263.5 (in this case, in order to work with Cura, it needs to be positive 263.5)
This allows Cura to block off half the build plate - mimicking the true build volume defined via G10. We cannot accidentally extend into a model into an area of the buildplate that we couldn't actually use - much like the BCN3D Cura preview.
If we kept Cura at 263.5, but used G10 P2 X131.75 Y0 U-131.75 S0 R0, T1 would actually print at the center of the bed, with T0 pretty much staying at the X endstop.
If we set the machine to G10 P2 X131.75 Y0 U-131.75 S0 R0, and then Cura to 131.75, Cura would give us an extra 131.75mm in width that we don't actually have available.
@dc42 said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
Your tool offsets for T2 and T3 are wrong. You should have equal but opposite X and U offsets in the G10 commands. For example if the lower limit printable by the X tool is -150 then the X offset should be half of that, so -75. Likewise the U offset should be half the maximum positive printable U value, which in this example would be half of +150.
So, in summary - this approach to G10 makes total sense, but you run into the slicers being dumber than the machine - no surprise there! By splitting the offset (-75 and 75 for example), you lose some of the benefits afforded by having dedicated T2 or T3 defined in Cura.
-
@sebkritikel
T0;FLAVOR:RepRap
;TIME:1438
;Filament used: 1.43706m
;Layer height: 0.2
;POSTPROCESSED
;Generated with Cura_SteamEngine 3.2.0
M141 S50
T0
M190 S30
M104 S210 starts heating 1 extruder.
M109 S210
M82 ;absolute extrusion mode
G28 ;HomeM83 ;relative extrusion mode
;LAYER_COUNT:18
;LAYER:0
M107
G0 F3000 X20.413 Y22.145 Z0.2
;TYPE:SKIRT
G1 F1500 X19.834 Y22.342 E0.02441T1
;FLAVOR:RepRap
;TIME:476
;Filament used: 0m
;Layer height: 0.2
;POSTPROCESSED
;Generated with Cura_SteamEngine 3.2.0
M141 S50
T1
M190 S30
M104 T1 S210 starts heating 2 extruder.
M109 T1 S210
M82 ;absolute extrusion mode
G28 ;HomeM83 ;relative extrusion mode
;LAYER_COUNT:13
;LAYER:0
G1 F1500 E-2
T1
M109 S210
M107
G0 F4500 X16.774 Y15.058 Z0.2
;TYPE:SKIRT
G1 F1800 X16.435 Y15.567 E0.02441T2
;FLAVOR:RepRap
;TIME:1440
;Filament used: 1.43709m
;Layer height: 0.2
;POSTPROCESSED
;Generated with Cura_SteamEngine 3.2.0
M141 S50
T0
M190 S30
M104 S210
M104 T1 S210 ;Fixed T1 temperature Switching on 1 extruder again and no mention of a second extruder.
M109 S210
M109 T1 S210 ;Fixed T1 temperature
M82 ;absolute extrusion mode
G28 ;HomeT2 ;enable duplication mode
M83 ;relative extrusion mode
;LAYER_COUNT:18
;LAYER:0
M107
G0 F3000 X-36.514 Y21.344 Z0.2
;TYPE:SKIRT
G1 F1500 X-37.022 Y21.685 E0.02442T3
;FLAVOR:RepRap
;TIME:652
;Filament used: 0.646357m
;Layer height: 0.2
;POSTPROCESSED
;Generated with Cura_SteamEngine 3.2.0
M141 S50
T0
M190 S30
M104 S210
M104 T1 S210 ;Fixed T1 temperature Same.
M109 S210
M109 T1 S210 ;Fixed T1 temperature
M82 ;absolute extrusion mode
G28 ;HomeT3 ;enable mirror mode
M83 ;relative extrusion mode
;LAYER_COUNT:13
;LAYER:0
M107
G0 F3000 X-42.99 Y14.305 Z0.2
;TYPE:SKIRT
G1 F1500 X-43.498 Y14.646 E0.02442 -
also i noticed the following:
when you select mirror or duplicate mode, only the heater 1 of the extruder is turned on, then printing starts. 2 extruder stays cold. then after several printed layers, 1 extruder stops heating and printing continues with cold extruders.
I think that the error is that I used the instructions for creating an idex 3D printer for RRF 2.0 firmware -
I don't know how the BCN version of Cura works. The instructions we give for setting up duplication and mirror mode assume a regular slicer. In the slicer, you centre your model around X0 Y0 as usual. Then the X and U offsets applied to T2 and T3 move the X print left of bed centre and the U print right of bed centre.
It may be possible to use the BCN slicer, but I can't tell you how. If that slicer puts a unique G- or M- code in the file to select duplication or mirror mode then you may be able to use that to run a macro to select the correct tool and offsets.
-
@dc42 Yes, there is still room for play, but now there is another problem. heating does not work 2 extruder. after printing several layers, the heater of the First extruder turns off
-
@DE-TechArt said in Creating a new IDEX 3D Printer with Duet 2 WIFI:
@dc42 Yes, there is still room for play, but now there is another problem. heating does not work 2 extruder. after printing several layers, the heater of the First extruder turns off
Most likely either the GCode file you are printing is turning it off, or the heater is entering the Fault state. What state does the web interface show that heater to be in?
-
@dc42 The malfunction message does not appear. Only reports that extruder 1 has a low temperature.