Tool setup: Motor, Extruder & Heater mapping



  • I am setting up an AON-M1 printer. It has 2 independent carriages that travel along the X-Axis. It uses 2 motors to move the Y-Axis, and 2 motors to run the Z-Axis. I have 8 drivers occupied, 6 that drive the axes on the duet3 6HC and 2 that drive extruders on two toolboards attached to my tool distribution board.

    There will be two separate tools. One being the left carriage, and two being the right carriage.

    Mapping:

    ; ======={ Drives }======================================== 
    ; 0.x corresponds to main board /// 1.x corresponds to tooloard-1 /// 2.x corresponds to toolboard-2
    ; X
    M569 P0.0 S1                                    ; physical drive 0.0 goes forwards
    M569 P0.1 S1 ; physical drive 0.1 goes forwards
    ; Y
    M569 P0.2 S1                                    ; physical drive 0.2 goes forwards
    M569 P0.3 S0 ; 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 P1.0 S1                                    ; physical drive 1.0 goes forwards
    M569 P2.0 S1                                    ; physical drive 2.0 goes forwards
    M584 X0.0 Y0.2:0.3 Z0.4:0.5 U0.1 E1.0:2.0       ; set drive mapping
    

    Tool Definition:

    ; ======={ Tools}==========================================
    M563 P0 S"LEFT" D1.0 H0 X1 F0 ; define tool 0
    G10 P0 X0 Y0 Z0                                 ; set tool 0 axis offsets
    G10 P0 R35 S150                                 ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 S"RIGHT" D2.0 H1 X3 F1                ; define tool 1
    G10 P1 X0 Y0 Z0                                 ; set tool 1 axis offsets
    G10 P1 R35 S150                                 ; set initial tool 1 active and standby temperatures to 0C
    

    Heaters:

    ; ======={ Heaters }=======================================
    ; Left nozzle>>>
    M308 S0 P"spi.cs0" Y"rtdmax31865" A"PT100 (L)" ; configure sensor 0 as thermocouple via CS pin spi.cs0
    M950 H0 C"1.out0" T0                            ; create nozzle heater output on 1.out0 and map it to sensor 0
    M307 H0 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
    H143 H0 S300 ; set temperature limit for heater 0 to 300C
    
    ; Right nozzle>>>
    M308 S1 P"spi.cs1" Y"rtdmax31865" A"PT100 (R)" ; configure sensor 1 as thermocouple via CS pin spi.cs1
    M950 H1 C"2.out0" T1                            ; create nozzle heater output on 2.out0 and map it to sensor 1
    M307 H1 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
    H143 H1 S300 ; set temperature limit for heater 1 to 300C
    

    For the tool definition, I am trying to map the extruder drivers. The DWC will show the tools if I use integers i.e. "D1" or "D2"... but I have the impression that my extruders are mapped to physical drives 1.0 & 2.0.

    However, upon doing so my DWC fails to recognize any tools. Could someone help explain how I have my stuff mapped out and why I cannot heat up my hotend?



  • @kroybal I have only skimmed over your post so I may have missed something but I think you have fallen for a common "gotcha". When you assign motors using M584, the first extruder becomes 0 and the second becomes extruder drive 1. So then when you define tools, the first will be tool 0 using extruder 0, and the second will be tool 1 using extruder 1. Regardless of which physical drive is mapped in M584, the first extruder will always be D0 when you define the tools (not D1).



  • @deckingman oh right on, well understood. Yeah that does seem feasible I will try it when I'm back in the machine shop.

    Thank you for the response.



  • @deckingman The D0/D1 assignment seem to work now the DWC is showing my tools. However, the DWC suggests that I do not have a heater assigned to either extruder.



  • @kroybal said in Tool setup: Motor, Extruder & Heater mapping:

    @deckingman The D0/D1 assignment seem to work now the DWC is showing my tools. However, the DWC suggests that I do not have a heater assigned to either extruder.

    Not sure that understand your comment. Heaters get assigned to tools, and extruders get assigned to tools, but heaters aren't assigned to extruders. It's because a heater is an entity on it's own and so is an extruder but a tool can be any combination of one or more heaters and one or more extruders. Does that help?

    EDIT. I think you may have another problem which is that by default, heater 0 is usually the heated bed and the first hot end heater is heater 1. So you might need to define those three heaters and assign heater1 to tool 0, and heater 2 to tool 1.

    It will probably be best if you post your entire config.g file.



  • @deckingman Sorry for the confusion it was a miss-label I meant the tool. I understand an extruder, fan, heater etc. can be combined into a single tool setup. In this case, as seen above in the code, I feel as if I have correctly assigned a heater to the tool. I am probably overlooking a syntactical error or just forgetting something altogether.

    edit: I got you, another one of those "gotcha" moments. I also have a heated chamber how does that come into play? (4-heaters in total)



  • @kroybal said in Tool setup: Motor, Extruder & Heater mapping:

    @deckingman Sorry for the confusion it was a miss-label I meant the tool. I understand an extruder, fan, heater etc. can be combined into a single tool setup. In this case, as seen above in the code, I feel as if I have correctly assigned a heater to the tool. I am probably overlooking a syntactical error or just forgetting something altogether.

    edit: I got you, another one of those "gotcha" moments. I also have a heated chamber how does that come into play? (4-heaters in total)

    Post you entire config.g and describe what heaters you want to do what.



  • ; ======={ Drives }========================================	
    ; 0.x corresponds to main board /// 1.x corresponds to tooloard-1 /// 2.x corresponds to toolboard-2
    ; X
    M569 P0.0 S1                                    ; physical drive 0.0 goes forwards
    M569 P0.1 S1									; physical drive 0.1 goes forwards
    ; Y
    M569 P0.2 S1                                    ; physical drive 0.2 goes forwards
    M569 P0.3 S0									; 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 P1.0 S1                                    ; physical drive 1.0 goes forwards
    M569 P2.0 S1                                    ; physical drive 2.0 goes forwards
    M584 X0.0 Y0.2:0.3 Z0.4:0.5 U0.1 E1.0:2.0       ; set drive mapping
    
    ; ======={ Added Axes }====================================
    M350 X16 Y16 Z16 U16 E16:16 E1.9:2.0						; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 U80.00 E420.00:420.00				; set steps per mm
    M566 X900.00 Y900.00 Z12.00 U900.00 E120.00:120.00			; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z180.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 X300 Y300 Z800 E300:300 U300 I30						; set motor currents (mA) and motor idle factor in percent
    M84 S20                                         			; Set idle timeout
    
    ; ======={ Axis Limits }===================================
    M208 X0 Y0 Z0 U61 S1                               		 ; set axis minima
    M208 X393 Y454 Z640 U454 S0                      	     ; set axis maxima
    
    ; ======={ Endstops }======================================
    M574 X2 S1 P"!io1.in"							;X-Max switch active-low
    M574 X1 S1 P"!io2.in"							;X-Min switch active-low
    M574 Y2 S1 P"!io3.in"							;Y-Max switch active-low
    M574 Z1 S1 P"!io4.in"					        ;Z-Max switch active-low
    
    ; ======={ 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 }=======================================
    ; Left nozzle>>>
    M308 S2 P"spi.cs0" Y"rtdmax31865" A"PT100 (L)" ; configure sensor 2 as thermocouple via CS pin spi.cs0
    M950 H2 C"1.out0" T2                            ; create nozzle heater output on 1.out0 and map it to sensor 2
    M307 H2 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
    H143 H2 S300									; set temperature limit for heater 2 to 300C
    
    ; Right nozzle>>>
    M308 S3 P"spi.cs1" Y"rtdmax31865" A"PT100 (R)" ; configure sensor 3 as thermocouple via CS pin spi.cs1
    M950 H3 C"2.out0" T3                            ; create nozzle heater output on 2.out0 and map it to sensor 3
    M307 H3 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
    H143 H3 S300									; set temperature limit for heater 3 to 300C
    
    ; Bed>>>
    M308 S0 P"temp0" Y"thermistor" T100000 B4138    ; 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 B1 S1.00                                ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                         ; map heated bed to heater 0
    M143 H0 S280                                    ; set temperature limit for heater 0 to 280C
    
    ; Chamber>>>
    M308 S1 P"temp1" Y"thermistor" T100000 B4138    ; configure sensor 1 as thermocouple via temp1 pin
    M950 H1 C"out2" T1                              ; create chamber heater output on out2 and map it to sensor 1
    M307 H1 B1 S1.00                                ; enable bang-bang mode for the chamber heater and set PWM limit
    M141 H1                                         ; map chamber to heater 1
    
    ; ======={ 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 H3 							; define tool 0
    G10 P0 X0 Y0 Z0                                 ; set tool 0 axis offsets
    G10 P0 R35 S150                                 ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 S"RIGHT" D1 H4			                ; define tool 1
    G10 P1 X0 Y0 Z0                                 ; set tool 1 axis offsets
    G10 P1 R35 S150                                 ; set initial tool 1 active and standby temperatures to 0C
    
    ; ========{ Filament Monitoring }==========================
    ; M591 D1.0 P5 C"1.io_0" R40:120 E3.0 S0			;Driver 1.0, laser sensor, pinname, Tol. 40-120%, 3.0mm detection, disabled
    ; M591 D2.0 P5 C"2.io_0" R40:120 E3.0 S0			;Driver 2.0, laser sensor, pinname, Tol. 40-120%, 3.0mm detection, disabled
    
    ; ========={ Miscellaneous }===============================
    M575 P1 S1 B57600                               ; enable support for PanelDue
    
    
    


  • @deckingman I would like Tool 0 to be my left carriage that runs along the x-axis grabbing heater 2, Tool 1 being my right carriage that runs along the x-axis independent of Tool 0 assigning the other available heater 3. I also have a heated chamber(H1) and bed (H0). Which are recognized in the DWC with the current config.g



  • @kroybal So your heater definitions looks about right at a glance. You have H0 as the bed, H1 as the chamber, and H2 and 3 being the two hot end heaters. But your tool definitions are wrong. For the left tool you have M563 P0 S"LEFT" D0 H3 but if you want to use heater 2, the you need to change that H3 to H2. Similarly, for the right tool you have M563 P1 S"RIGHT" D1 H4 but heater 4 does not exist and if you want it to be heater 3, then you need to change that H4 to H3.

    One other thing that leapt out at me (but is unrelated to heaters) is this
    M350 X16 Y16 Z16 U16 E16:16 E1.9:2.0

    That "E1.9:2.0" on the end makes no sense - remove it.

    Oh, and I don't see any M669 at the beginning of your config.g to define the kinematics type either. I guess that'll be OK if your kinematics happen to be the default which I think is Cartesian.



  • ; ======={ Tools}==========================================
    M563 P0 S"LEFT" D0 H2 				; define tool 0
    G10 P0 X0 Y0 Z0                                 ; set tool 0 axis offsets
    G10 P0 R35 S150                                 ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 S"RIGHT" D1 H3			        ; define tool 1
    G10 P1 X0 Y0 Z0                                 ; set tool 1 axis offsets
    G10 P1 R35 S150                                 ; set initial tool 1 active and standby temperatures to 0C
    

    With the updated corrections the DWC still shows that my Tool-0 and my Tool-1 have no assigned heaters.

    @deckingman said in Tool setup: Motor, Extruder & Heater mapping:

    One other thing that leapt out at me (but is unrelated to heaters) is this
    M350 X16 Y16 Z16 U16 E16:16 E1.9:2.0

    That "E1.9:2.0" on the end makes no sense - remove it.

    RE: I removed it, I am pretty sure that just spat out from the configurator. I still have to calibrate once I get everything ready to move and heat.

    Oh, and I don't see any M669 at the beginning of your config.g to define the kinematics type either. I guess that'll be OK if your kinematics happen to be the default which I think is Cartesian.

    RE: It is being ran under a cartesian setup.


  • Moderator

    Can you send M98 P"config.g" and report the results?



  • I have some wires not connected, such as AC the signal wire for the IDEC relay for both the bed and chamber. My hotends are capable of going above 400C from what I've been told.

    @Phaedrux
    9/30/2020, 4:02:14 PM Error: Response timeout: CAN addr 2, req type 6026, RID=18
    Error: Heater 3 not found
    Error: Bad command: H143 H3 S300
    Warning: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C
    Warning: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 365C
    9/30/2020, 4:02:12 PM Error: Response timeout: CAN addr 1, req type 6017, RID=14
    Response timeout: CAN addr 2, req type 6017, RID=15
    Error: bad grid definition: Too many grid points; suggest increase spacing to 21.2mm
    Error: Response timeout: CAN addr 1, req type 6026, RID=16
    Error: Heater 2 not found
    Error: Bad command: H143 H2 S300
    9/30/2020, 4:02:07 PM Error: Response timeout: CAN addr 1, req type 6021, RID=12
    Response timeout: CAN addr 2, req type 6021, RID=13
    Error: in file macro line 42 column 50: M203: array too long, max length = 2
    9/30/2020, 4:02:05 PM Error: Response timeout: CAN addr 2, req type 6018, RID=11
    9/30/2020, 4:02:04 PM Error: Response timeout: CAN addr 1, req type 6018, RID=10

    "Error response too long"


  • Moderator

    @kroybal said in Tool setup: Motor, Extruder & Heater mapping:

    "Error response too long"

    Send from the gcode console window itself.


  • Moderator

    Have you set the address of your toolboards?

    https://duet3d.dozuki.com/Wiki/Duet_3_Tool_Board#Section_Commissioning_a_new_Tool_Board

    @kroybal said in Tool setup: Motor, Extruder & Heater mapping:

    Error: Bad command: H143 H3 S300

    I'm not sure if it matters, but I notice you are definining heaters 2 and 3 before you define heaters 0 and 1. I suggest rearranging that to start with 0 and move up from there.



  • @Phaedrux said in Tool setup: Motor, Extruder & Heater mapping:

    Send from the gcode console window itself.

    I sent "M98 P"config.g" as a command through the Console tab using the DWC and it still reports "Response too long, see Console". I am pretty certain I am sending the command through the gcode console window, unless there is another prompt which I can send code.

    Have you set the address of your toolboards?

    Check later for an updated edit. I will work on addressing the toolboards now.

    EDIT: according to the section
    https://duet3d.dozuki.com/Wiki/Duet_3_Tool_Board#Section_Buttons_and_LEDs
    I am not seeing a flashing red LED whatsoever, which would suggest sync between the board and my Duet3. I do have the Vin LED fired up indicating power. Perhaps there is a common wiring issue that can occur here?

    Describing my setup I have an RJ11 wire going straight through to my distribution board, and on my tool distribution board I have jumpers across the CAN out standoff. I also have jumpers across the bypass standoffs on T2 and T3 ports (I am planning to only use T0 & T1.) Currently the distribution board is grabbing 24V & 15A. I have two CAN-FD cables running straight through from the distribution board to my two separate toolboards.



  • Toolboards.jpeg


  • administrators

    @kroybal as you describe this it should work.

    to help with diagnosis can you try one tool board at a time. (with the jumper to bypass the other). Also its worth checking the continuity between the Duet 3 CAN header and the tool distribution board CAN header (you can do this with a multimeter with the power turned off)


  • administrators

    @kroybal said in Tool setup: Motor, Extruder & Heater mapping:

    I am not seeing a flashing red LED whatsoever, which would suggest sync between the board and my Duet3. I do have the Vin LED fired up indicating power.

    As well as the blue VIN LED on the tool board being lit when you apply VIN power, is the red 5V LED next to it lit?



  • @T3P3Tony I have yet to check for continuity I will get to that when I reinstall the boards. I have reduced the setup to just the one toolboard for now and will add the other once its properly commissioned.

    EDIT: I checked for continuity from one end of the JST ZH to the opposite and each pin had continuity across. I did the same for the RJ11 cable that I am using. every wire/pin being used is in operating condition.



  • @dc42 I did not see the 5V lit, I was wondering why it failed to turn on. The only light indication is the Vin blue LED. I have removed the setup from my black box to get a clearer image of the setup.

    IMG_0375.JPEG

    Assume the RJ11 is connected to the CAN_out on the duet3 I also have a heater, and a motor connected via molex. Pardon the image quality, however, the jumpers seem to be appropriately placed. I am grabbing 24V 15A from a power supply to my distribution board. Does anything stand out as to why the board doesn't show the 5V red LED or cannot be addressed using M115 B121/B10?



  • @dc42 When you brought the 5V LED to question I had checked the power supply and it was not operating as expected. My issues stem from the most trivial solution. Does it have power 😵


  • administrators

    glad you found the problem!


Log in to reply