Multi Material, Multiple Tools with Single Hotend/Extuder
-
I've just bought a 3D Chameleon, which is a multi-material selector that feeds down to a single PTFE tube that can be fed into the hotend. That allows up to 4 materials to be used with a single hotend/extruder.
I'm guessing the best way forward is to specify four tools (each configured with the same heater and extruder) and then using the tpre#.g and tpost#.g etc to create macros for swapping out between the materials. This would also allow me to assign a filament to a particular tool, so that pressure advance, temperature, and other settings can be applied accordingly without needing to have post processing on the slicer. (As suggested by option 2, https://forum.duet3d.com/post/173368
However when I create four tools that all use the same extruder, and then selecting a filament in Duet Web Control, all of the tools show they are using the same filament.
; Tools (generated by RRF Config Tool) M563 P0 D0 H1 F1 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 D0 H1 F1 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M563 P2 D0 H1 F1 ; define tool 2 G10 P2 X0 Y0 Z0 ; set tool 2 axis offsets G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C M563 P3 D0 H1 F1 ; define tool 3 G10 P3 X0 Y0 Z0 ; set tool 3 axis offsets G10 P3 R0 S0 ; set initial tool 3 active and standby temperatures to 0C
I will also note that the
filaments.csv
file only contains one entry for the selected filament, though the header does say the filament is associated with the extruder and not the tool itself.RepRapFirmware filament assignment file v1 generated at 2023-06-17 18:23 extruder,filament 0,eSun
Is there a way to assign a filament to the tool instead?
Hardware: Duet 2 Wifi
Version:3.4.5 (2022-11-30)
Printer: Creality Ender 3
Hotend: Hemera XS Revo -
@NZSmartie said in Multi Material, Multiple Tools with Single Hotend/Extuder:
Is there a way to assign a filament to the tool instead?
I'm just guessing, but isn't that what the toolchange macros are supposed to manage?
-
@NZSmartie i dont fully understand the questions. but i have a custom created printer where i have 2 filaments going to one printhead nozzle. i have a single Orbiter extruder on the carriage, and i have 2 more orbiter extruders at each filament spool, so when i select tool 2 it uses one pair of extruders, and tool 3 uses another pair of extruders. i dont use the filament functions.
not sure if this helps at all
-
@NZSmartie said in Multi Material, Multiple Tools with Single Hotend/Extuder:
Is there a way to assign a filament to the tool instead?
No, you can only assign filaments per extruder. You may be able to work-around it by creating a few extra extruders and then map each tool to the corresponding new "virtual" extruder which could use the same driver.
-
@chrishamm said in Multi Material, Multiple Tools with Single Hotend/Extuder:
be able to work-around it by creating a few extra extruders and then map each tool to the corresponding new "virtual" extruder which could use the same driver.
Ah-ha, "virtual extruders" was what helped me figure out the behaviour I'm after! Thank you!
; "Virtual" Extruder, where multiple extruders share the same driver. except each extruder ; is disabled when they're not in use. ; Tool switching will relinquish control of the extruder to the target tool ; config-override.g M584 E3:3:3:3 ; set drive mapping M92 E397.00:397.00:397.00:397.00 ; steps per mm (Hemera XS) M906 E1333:1333:1333:1333 ; set the motor currents M350 E16:16:16:16 I0 ; configure microstepping without interpolation M563 P0 D0 H1 F1 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 D1 H1 F1, G10 P1 X0 Y0 Z0, G10 P1 R0 S0 M563 P2 D2 H1 F1, G10 P2 X0 Y0 Z0, G10 P2 R0 S0 M563 P3 D3 H1 F1, G10 P3 X0 Y0 Z0, G10 P3 R0 S0
; tfree#.g ; Retract the filament as per the E3D guide for the Revo Nozzel ; https://e3d-online.zendesk.com/hc/en-us/articles/4406857421213-Start-and-End-G-code-for-faster-nozzle-changes G91 ; move to relative mode G1 E2 F800 ; extrude slightly G1 E-18 F800 ; retract filament from meltzone G4 S2 ; dwell 2 seconds G1 E-10 F800 ; retract filament into thermal break M18 E0:1:2:3 ; disable all virtual extruders associated with our tools
; tpost#.g ; Wait for set temperatures to be reached M116 P0 G91 ; move to relative mode ; Retreact any filament that may already be loaded (copy from tfree) G1 E2 F800 ; extrude slightly G1 E-18 F800 ; retract filament from meltzone G4 S2 ; dwell 2 seconds G1 E-10 F800 ; retract filament into thermal break ; The filament will take 11 seconds after the macro returns to feed the filament at 1500mm/m. M98 P"0:/macros/3D Chameleon/Filament 1" G4 S10 ; dwell 9 seconds G1 E25 F1500 ; feed in the filament over the next second, that's coming in from the MMU. G1 E30 F200 ; extract some filament...?
Note that
0:/macros/3D Chameleon/Filament 1
is a macro that will trigger the 3D Chameleon to switch to a particular filament -
-
-