AON-M1 (powered by Duet 3): dual extruder slicing



  • My AON-M1 is officially running on a duet3 MB 6HC board. So far it's running great, I can slice using only one extruder for now. I encounter issues with prints running both independent extruder axes (X for primary & U for secondary/support)

    When I slice (Simplify3D using AON-M2 settings which worked well with the previous stock control board) using both extruders The X extruder runs as desired, however, during a tool change it is supposed to tuck the Left (X-primary) extruder to the side, then run the Right (U-support/secondary) extruder to lay some support material down.

    I am assuming the issue here is how I declare my tools. Simplify3D talks to the heaters and extruders via tool definitions as follows:
    T0 -- Left Extruder
    T1 -- Right Extruder
    T3 -- Chamber

    I intend to map my U-Axis T1 Right Extruder to cooperate with X-coordinates.
    If I have 8 drivers 6 to move axes and 2 to run the extruders how exactly does the M563 map tool movement?

    Quick View tool assignments:

    ; ======={ Tools}==========================================
    M563 P0 S"LEFT" D0 H1 							; define tool 0
    G10 P0 X-80 Y-10 Z0                             ; set tool 0 axis offsets
    M563 P1 S"RIGHT" D1 X3 H2			            ; define tool 1 --- Map to U to X-Axis
    G10 P1 U587 Y-10 Z0                             ; set tool 1 axis offsets   
    M563 P2 S"Chamber" H3							; added for Simplify3d compatibility
    

    Full Gcode:

    ; Axis Definitions====>>>>>
    ; X = Left (on X-axis) Extruder U = Right (on X-axis) Extruder /// Y = Y-Axis /// Z = Z-Axis
    
    ; ======={ Drives }========================================	
    ; 0.x corresponds to main board /// 20.x corresponds to tooloard-1 /// 21.x corresponds to toolboard-2
    ; X
    M569 P20.0 S0                                   ; physical drive 0.0 goes forwards
    M569 P21.0 S0									; physical drive 0.1 goes forwards
    ; Y
    M569 P0.2 S0                                    ; physical drive 0.2 goes forwards
    M569 P0.3 S1									; physical drive 0.3 goes backwards
    ; Z
    M569 P0.4 S0                                    ; physical drive 0.4 goes backwards
    M569 P0.5 S0									; physical drive 0.5 goes backwards
    
    ; ======={ Extruders }=====================================
    M569 P0.0 S1                                    ; physical drive 1.0 goes forwards
    M569 P0.1 S1                                    ; physical drive 2.0 goes forwards
    M584 X20.0 Y0.2:0.3 Z0.4:0.5 U21.0 E0.0:0.1     ; set drive mapping
    
    ; ======={ Movement }======================================
    M350 X16 Y16 Z16 U16 E16:16 								; configure microstepping with interpolation
    M92 X81.387 Y81.275 Z1606.43 U81.387 E92.59:92.59			; set steps per mm
    M566 X900.00 Y900.00 Z24.00 U900.00 E240.00:240.00			; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z360.00 U6000.00 E1200:00:1200.00	; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 U500.00 Y500.00 Z20.00 U500.00 	; set accelerations (mm/s^2)
    M906 X700 Y700 Z700 E500:500 U700 I30						; set motor currents (mA) and motor idle factor in percent
    M84 S20                                         			; Set idle timeout
    
    ; ======={ Axis Limits }===================================
    M208 X0 Y0 Z0 U64 S1                                    ; set axis minima
    M208 X523 Y437 Z640 U587 S0                      	     ; set axis maxima
    
    ; ======={ Endstops }======================================
    M574 X1 S1 P"!20.io0.in"							;X-Min Homes Left carriage as Endstop index 0
    M574 Y1 S1 P"!io5.in"								;Y-Max Homes Y as endstop index 1
    M574 Z1 S1 P"!io3.in+!io4.in"						;Z-Min Homes Z (bed) as endstop index 2
    M574 U2 S1 P"!21.io0.in"							;U-Max Homes Right carriage as Endstop index 3
    
    ; ======={ Z-Probe }=======================================
    M558 P0 H5 F120 T6000                           ; disable Z probe but set dive height, probe speed and travel speed
    M557 X15:439 Y15:439 S20                        ; define mesh grid
    ;M558 P2 H5 F120 T6000							; enable modulated IR Z probe sensor, dive height, probe speed and travel speed
    
    ; ======={ Heaters }=======================================
    ; Bed>>>
    M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Bed"    ; configure sensor 0 as thermocouple temp0 pin
    M950 H0 C"out1" T0                              ; create bed heater output on out1 and map it to sensor 0
    M307 H0 A66.6 C305.2 D0.3 V24.3 B0                    ; enable bang-bang mode for the bed heater and set PWM limit
    ;M307 H0 B0
    M140 H0                                         ; map heated bed to heater 0
    M143 H0 S150                                    ; set temperature limit for heater 0 to 150C
    
    ; Left nozzle>>>
    M308 S1 P"spi.cs0" Y"rtdmax31865" A"PT100 (L)"  ; configure sensor 1 as thermocouple via CS pin spi.cs0
    M950 H1 C"out0" T1                              ; create nozzle heater output on 1.out0 and map it to sensor 1
    M307 H1 A797.1 C281.0 D4.8 V24.3 B0             ; disable bang-bang mode for heater  and set PWM limit
    M143 H1 S510									; set temperature limit for heater 1 to 510C
    
    ; Right nozzle>>>
    M308 S2 P"spi.cs1" Y"rtdmax31865" A"PT100 (R)"  ; configure sensor 2 as thermocouple via CS pin spi.cs1
    M950 H2 C"out3" T2                              ; create nozzle heater output on 2.out0 and map it to sensor 2
    M307 H2 A797.1 C281.0 D4.8 V24.3 B0                   ; disable bang-bang mode for heater  and set PWM limit
    M143 H2 S510									; set temperature limit for heater 2 to 510C
    
    ; Chamber>>>
    M308 S3 P"temp1" Y"thermistor" T100000 B4138 A"Chamber" ; configure sensor 1 as thermocouple via temp1 pin
    M950 H3 C"out2" T3                              		; create chamber heater output on out2 and map it to sensor 1
    M307 H3 A420.0 C140.0 D90 B0                    		; enable bang-bang mode for the chamber heater and set PWM limit
    ;M307 H3 B0;
    M141 H3                                         		; map chamber to heater 1
    M570 H3 S600
    
    ; ======={ Fans }==========================================
    M950 F0 C"out4" Q500                            ; create fan 0 on pin out4 and set its frequency
    M106 P0 S1 H-1                                  ; set fan 0 value. Thermostatic control is turned off
    ;M950 F1 C"out5" Q500                           ; create fan 1 on pin out5 and set its frequency
    ;M106 P1 S1 H-1                                 ; set fan 1 value. Thermostatic control is turned off
    
    ; ======={ Tools}==========================================
    M563 P0 S"LEFT" D0 H1 							; define tool 0
    G10 P0 X-80 Y-10 Z0                             ; set tool 0 axis offsets
    M563 P1 S"RIGHT" D1 X3 H2			            ; define tool 1
    G10 P1 U587 Y-10 Z0                             ; set tool 1 axis offsets   
    M563 P2 S"Chamber" H3
    G10 P2 X0 Y0 Z0
    
    ; ========{ Filament Monitoring }==========================
    M591 D0.0 P5 C"io1.in" R40:120 E3.0 S0			;Driver 0.0, laser sensor, pinname, Tol. 40-120%, 3.0mm detection, enabled
    M591 D0.1 P5 C"io2.in" R40:120 E3.0 S0			;Driver 0.1, laser sensor, pinname, Tol. 40-120%, 3.0mm detection, enabled
    
    ; ========={ Miscellaneous }===============================
    M575 P1 S1 B57600                               ; enable support for PanelDue
    
    

  • administrators

    @kroybal do you have the X and U axis moved by toolboards, and the extruders driven by the mainboard? That's quite an odd arrangement (normally would be the other way around).

    You would typically have the actions you wand to take when changing tools in the tool change macros in the /sys/ directory see

    https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Tool_change_files

    Then the slicer only needs to sent T0, T1 and the various actions you want to take will run.



  • @T3P3Tony The arrangement is odd, I originally had my extruders ran on the tool board but since they are monitored by PT100 and IR filament monitoring sensors (not supported by the toolboards per documentation) I was left with no other option but to have the extruder drives/hot end heaters on the mainboard otherwise I would not be able to filament monitor, and my heaters were faulting out.

    Despite everything, I did manage to get my setup running, after a long battle of setting accurate tool offsets. Currently I am experiencing some curious layer shifting that has occurred in my most recent print , I plan on running another print and re-slicing the same setup to see if it was an isolated incident.

    IMG_0440.jpg
    -Positive X direction towards the right.
    -Positive Y Direction into the image.

    Layer shift towards the positive right direction for layers 9 to 20 approximately.

    You would typically have the actions you wand to take when changing tools in the tool change macros in the /sys/ directory see

    https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_Tool_change_files

    I will read through the documentation. As of current I have tool change scripts at a slicer level and not through the config/firmware of the machine which could complicate using this machine if there ever was (very unlikely) a slicer software change at the shop.


Log in to reply