Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    How to set nozzle offset for toolchanger?

    Scheduled Pinned Locked Moved Unsolved
    Tuning and tweaking
    2
    7
    655
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Depundefined
      Dep
      last edited by

      The distance between the Z-switch on the carriage and the nozzle on 1st extruder is approximately 20mm.

      If I set the offset with commands:

      G31 Z-25;
      G10 P0 Z5
      
      

      (I want this offset to be sure that the bed does not hit the nozzle.)

      Then after activating the 1st extruder bed does not rise above 5mm.
      Only the M208 S1 Z-5 helps

      Then I set:

      G31 Z0
      G10 P0 Z-20
      

      But now, if i change the head during printing, then after deactivate first extruder, the table rises 20 mm higher and the limit switch crashes to the printed model.

      Tell me how to do it right?

      1 Reply Last reply Reply Quote 0
      • Depundefined
        Dep
        last edited by Dep

        Any advice? Please.

        1 Reply Last reply Reply Quote 0
        • jay_s_ukundefined
          jay_s_uk
          last edited by

          here's how I have mine set up.
          I use a switch mounted to the carriage.
          Therefore, my G31 is set to

          G31 P500 X0 Y0 Z0
          

          I then use TAMV to measure the nozzle offsets is X and Y. To calculate the Z offset I still use the paper method.
          Here are my tool offsets.

          G10  P0 Z-8.59 X4.685 Y39.716
          G10  P1 Z-3.35 X31.086 Y40.012 
          

          Works well every time

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          Depundefined 2 Replies Last reply Reply Quote 1
          • Depundefined
            Dep @jay_s_uk
            last edited by

            @jay_s_uk Thanks!

            1 Reply Last reply Reply Quote 0
            • Depundefined
              Dep @jay_s_uk
              last edited by

              @jay_s_uk Could you please give your config file, homing files and macros? Difficult to set up toolchanger. There are many questions. I could pick up something useful from you.

              jay_s_ukundefined 1 Reply Last reply Reply Quote 0
              • jay_s_ukundefined
                jay_s_uk @Dep
                last edited by

                @Dep
                config.g

                ; Configuration file for Duet 3 (firmware version 3)
                ; executed by the firmware on start-up
                ;
                ; generated by RepRapFirmware Configuration Tool v2.1.4 on Mon Dec 09 2019 17:42:21 GMT+0000 (Greenwich Mean Time)
                
                ;############## General Preferences ##################
                
                M555 P2															; Marlin-style Outputs
                G21                                     						; Set dimensions to millimetres
                G90                                     						; send absolute coordinates...
                M83                                     						; ...but relative extruder moves
                M550 P"Toolchanger"                            					; set printer name
                M552 S1
                
                ;############## Axis Mapping #########################
                
                M584 X0.0 Y0.1 Z0.3:0.4:0.5 E1.0:1.1:1.2 U0.2 P3          			; X and Y for CoreXY.  U for toolchanger lock. Z has three drivers for kinematic bed suspension. 
                ;M584 X0.0:0.1:0.2:0.3:0.4:0.5 Y1.0 Z1.1 E1.2
                ;############## Drive Direction ######################
                 
                M569 P0.0 S1                            						; Drive 0 direction | X stepper
                M569 P0.1 S1                           							; Drive 1 direction | Y Stepper
                M569 P0.2 S1                            						; Drive 2 direction | U Tool Changer Lock
                M569 P0.3 S1                            						; Drive 3 direction | Front Left Z
                M569 P0.4 S1													; Drive 4 direction | Front Right Z
                M569 P0.5 S1													; Drive 5 direction | Back Z
                M569 P1.0 S0													; Drive 6 direction | Tool 1
                M569 P1.1 S1 D2													; Drive 6 direction | Tool 2
                M569 P1.2 S0													; Drive 6 direction | Tool 3
                
                ;############## Kinematics ###########################
                
                M669 K1                                 						; CoreXY mode
                
                ;############## Leadscrew Location ###################
                
                ; Leadscrew locations (really, kinematic coupling locations) extracted from CAD model assuming back right build plate corner is (0, 0)
                M671 X250:-250:0 Y270:270:-265 S20 								; Front Left: (484.5, 548.5) | Front Right: (-6, 548) | Back: (244.5, 17)
                
                ;############## Microstepping ########################
                
                M350 X16 Y16 U16 Z16 E16:16:16 I1             					; Configure microstepping with interpolation
                
                ;############## Steps Per mm #########################
                
                M92 X160 Y160 U46 Z1600 E415:397.5:397.5  						; Set steps per mm
                
                ;############## Speeds and Feeds #####################
                
                M566 X1000 Y1000 Z120 E120:8000:8000 U2     						; Set maximum instantaneous speed changes (mm/min). Values of X and Y were 1400
                M203 X25000 Y25000 Z800 E1200:20000:20000 U5000 				; Set maximum speeds (mm/min)
                M201 X1000 Y1000 Z200 E250:1300:1300 U1000    					; Set accelerations (mm/s^2) Values of X and Y were 6000
                M204 P500
                M906 X1400 Y1400 U1400 Z2200 E800:1050:1050 I30    				; Set motor currents (mA) and motor idle factor in per cent
                M84 S30                                 						; Set idle timeout
                
                ;############## Axis Limits ##########################
                
                M208 X-246.5 Y-274 Z0 U0 S1                        				; Set axis minima
                M208 X255 Y274 Z500 U180 S0                  					; Set axis maxima
                
                ;############## Endstops #############################
                
                M574 X1 S1 P"io1.in"                    						; Configure active-high endstop for low end on X via pin io1.in
                M574 Y1 S1 P"io2.in"                    						; Configure active-high endstop for low end on Y via pin io2.in
                
                ;############## Z-Probe ##############################
                
                M558 P5 C"io4.in" H1 A5 F120 T15000 S0.02       				; Set Z probe type to switch and the dive height + speeds
                G31 P500 X0 Y0 Z0												; Set Z probe trigger value, offset and trigger height
                M557 X-225:225 Y-225:225 S30                					; Define mesh grid
                
                ;############## Bed Heater ###########################
                
                M308 S0 P"spi.cs3" Y"thermocouple-max31855" T"K"				; Configure sensor 0 as thermocouple via CS pin spi.cs1
                M950 H0 C"out1" T0 Q10                     						; Create bed heater output on out0 and map it to sensor 0
                M143 H0 S180                            						; Set temperature limit for heater 0 to 180C
                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
                
                ;############## Tool 0 Heaters #######################
                
                M308 S1 P"1.temp0" Y"thermistor" T100000 B4267 					; Configure sensor 1 as thermistor on pin 1.temp0
                M950 H1 C"1.out0" T1                                    		; Create nozzle heater output on 1.out0 and map it to sensor 1
                M143 H1 S300                                            		; Set temperature limit for heater 1 to 280C
                M307 H1 B0 S1.00                                        		; Disable bang-bang mode for the nozzle heater and set PWM limit
                
                ;############## Tool 0 Fans ##########################
                
                M950 F0 C"1.out3" Q500                    						; Create fan 0 on pin out3 and set its frequency
                M106 P0 S0 H-1                          						; Set fan 0 value. Thermostatic control is turned off
                M950 F1 C"1.out6" Q500                    						; Create fan 1 on pin out4 and set its frequency
                M106 P1 S1 H1 T45                       						; Set fan 1 value. Thermostatic control is turned on
                
                ;############## Tool 0 Switch ########################
                
                M950 J0 C"1.io0.in"												; Tool 0 detector switch
                
                ;############## Tool 1 Heaters #######################
                
                M308 S2 P"1.temp1" Y"thermistor" T100000 B4725 C7.06e-8 		; Configure sensor 1 as thermistor on pin 1.temp0
                M950 H2 C"1.out1" T2                                    		; Create nozzle heater output on 1.out0 and map it to sensor 1
                M143 H2 S300                                            		; Set temperature limit for heater 1 to 280C
                M307 H2 B0 S1.00                                        		; Disable bang-bang mode for the nozzle heater and set PWM limit
                
                ;############## Tool 1 Fans ##########################
                
                M950 F2 C"1.out7" Q500                    						; Create fan 0 on pin out3 and set its frequency
                M106 P2 S0 H-1                          						; Set fan 0 value. Thermostatic control is turned off
                M950 F3 C"1.out4" Q500                    						; Create fan 1 on pin out4 and set its frequency
                M106 P3 S1 H2 T45                       						; Set fan 1 value. Thermostatic control is turned on
                
                ;############## Tool 1 Switch ########################
                
                M950 J1 C"1.io1.in"												; Tool 1 detector switch
                
                ;############## Tool 2 Heaters #######################
                
                M308 S3 P"1.temp2" Y"thermistor" T100000 B4725 C7.06e-8			; Configure sensor 1 as thermistor on pin 1.temp0
                M950 H3 C"1.out2" T3                                    		; Create nozzle heater output on 1.out0 and map it to sensor 1
                M143 H3 S300                                            		; Set temperature limit for heater 1 to 280C
                M307 H3 B0 S1.00                                        		; Disable bang-bang mode for the nozzle heater and set PWM limit
                
                ;############## Tool 2 Fans ##########################
                
                M950 F4 C"1.out7" Q500                    						; Create fan 0 on pin out3 and set its frequency
                M106 P4 S0 H-1                          						; Set fan 0 value. Thermostatic control is turned off
                M950 F5 C"1.out5" Q500                    						; Create fan 1 on pin out4 and set its frequency
                M106 P5 S1 H3 T45                       						; Set fan 1 value. Thermostatic control is turned on
                
                ;############## Tool 2 Switch ########################
                
                M950 J1 C"1.io3.in"												; Tool 1 detector switch
                
                ;############## Tool 3 Heater for Tuning #############
                
                M308 S4 P"0.temp0" Y"thermistor" T100000 B4725 C7.06e-8			; Configure sensor 1 as thermistor on pin 1.temp0
                M950 H4 C"0.out2" T4                                    		; Create nozzle heater output on 1.out0 and map it to sensor 1
                M143 H4 S300                                            		; Set temperature limit for heater 1 to 280C
                M307 H4 B0 S1.00                                        		; Disable bang-bang mode for the nozzle heater and set PWM limit
                
                ;############## Tool 3 Fans for Tuning ###############
                
                M950 F6 C"0.out7" Q500                    						; Create fan 0 on pin out3 and set its frequency
                M106 P6 S0 H-1                          						; Set fan 0 value. Thermostatic control is turned off
                M950 F7 C"0.out4" Q500                    						; Create fan 1 on pin out4 and set its frequency
                M106 P7 S1 H4 T45                       						; Set fan 1 value. Thermostatic control is turned on
                
                ;############## Tools ################################
                
                M563 P0 S"BMG Tool" D0 H1 F0          							; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan
                G10  P0 S0 R0                       							; Set tool 0 operating and standby temperatures(-273 = "off")
                
                M563 P1 S"Hemera" D1 H2 F2          							; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan
                G10  P1 S0 R0                       							; Set tool 1 operating and standby temperatures(-273 = "off")
                
                M563 P2 S"Hemera 2" D2 H3 F4          							; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan
                G10  P2 S0 R0                       							; Set tool 1 operating and standby temperatures(-273 = "off")
                
                M563 P3 S"Tuning" D2 H4 F6          							; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan
                G10  P3 S0 R0                       							; Set tool 1 operating and standby temperatures(-273 = "off")
                
                ;############## Pressure Advance #####################
                
                M572 D1 S0.03 													; Pressure advance T1 - Taken from E3D tool changer
                
                ;############## Custom settings ######################
                
                M98 P"/sys/Toffsets.g"                  						; Set tool offsets from the bed. In separate file so test macro can invoke. 
                M98 P"/sys/FilamentRetraction.g"								; Set Filament Retraction
                M593 F36.36														; Dynamic Acceleration Adjustment
                
                ;############## Miscellaneous ########################
                
                M501                                    						; Load saved parameters from non-volatile memory
                
                ;M98 P"unload_tool.g"
                

                tpre0

                ; Runs after freeing the previous tool if the next tool is tool-0.
                ; Note: tool offsets are not applied at this point!
                
                ; ################# Tool 0 Pre Prep ###################
                
                if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed	; If the printer hasn't been homed, home it
                	M98 P"0:/sys/homeall.g"												; Home all axis
                
                M98 P"/macros/tool_unlock.g" 											; Unlock the tool
                
                G53 G0 X227.5 Y206 F10000  												; Rapid to the approach position without any current tool.  This lets the human know the next command is waiting on this new tool. 
                G53 G0 Y226 F10000  													; Rapid to the approach position without any current tool.
                G91                           											; Relative to move bed down
                G1 Z20 F6000                   											; Move the bed further from the nozzle prior to any tool moves. 
                G90                           											; Return to absolute
                M400																	; Make sure all moves are finished
                
                ; ################# Tool 0 Post #######################
                
                G53 G1 Y258 F6000        												; Move to the pickup position with tool0.
                M98 P"/macros/tool_lock.g" 												; Lock the tool
                G53 G1 Y230 F6000        												; Retract the entire tool and wipe Backwards.
                G53 G1 Y250 F10000       												; Wipe Forwards.
                G53 G1 Y230 F10000       												; Wipe Backwards.
                G53 G1 Y250 F10000       												; Wipe Forwards.
                G53 G1 Y176 F10000       												; Wipe Backwards.
                

                tpost0.g

                ; Runs after firmware thinks Tool0 is selected
                ; Note: tool offsets are applied at this point!
                ; Note that commands prefixed with G53 will NOT apply the tool offset.
                
                ; ################# Tool 0 Post Prep ##################
                
                M116 P0                  												; Wait for set temperatures to be reached
                M106 R1         														; Restore print cooling fan speed
                
                ; ################# Tool 0 Post Print Prep ############
                
                G1 R2 Z0        														; Restore prior position now accounting for new tool offset.  Z first to avoid certain collisions when near tool parking.
                G1 R2 Y0 F6000     														; Restore prior position now accounting for new tool offset
                G1 R2 X0 F6000     														; Restore prior position now accounting for new tool offset
                

                tfree0.g

                ; Runs at the start of a toolchange if the current tool is tool0.
                ; Note: tool offsets are applied at this point unless we preempt commands with G53!
                ; Note: Prior to this macro, XYZ have been saved to slot 2 by the firmware as though a G60 S2 were executed. 
                
                ; ################# Tool 0 Free Prep ##################
                
                G91                           									; Relative to move bed down
                G1 H2 Z5 F6000                   								; Move the bed further from the nozzle prior to any tool moves. 
                G90                           									; Return to absolute
                
                ; ################# Tool 0 Free #######################
                
                G53 G0 X227.5 Y176 F10000       								; Rapid to the approach position with tool-0. (park_x, park_y - offset).  X first in case close to tool row. 
                G53 G0 Y230 F10000      										; Rapid to the approach position with tool-0. (park_x, park_y - offset)
                G53 G1 Y258 F3000            									; Controlled move to the park position with tool-0. (park_x, park_y)
                M98 P"/macros/tool_unlock.g"  									; Unlock the tool
                G53 G1 Y206 F6000             									; Move the carraige to retract the pin until it clears the tool.
                G53 G0 Y176 F10000	      										; Rapid to a position where a future tool change won't hurt anything by returning to this position via its G60 S2
                

                the other tool files are the same as the 0 just with different X coordinates.
                please note I have the centre of my bed as 0,0

                Toffsets.g

                G10  P0 Z-17.80 X3.854 Y39.075
                G10  P1 Z-2.65 X31.99 Y40.25 
                G10  P2 Z-2.6 X31.286 Y40.587 
                

                FilamentRetraction.g

                M207 S0.5 F2400 Z0.5 P0
                M207 S1.6 R0 F2400 Z0.5 P1
                M207 S1.6 R0 F2400 Z0.5 P2
                

                Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                Depundefined 1 Reply Last reply Reply Quote 1
                • Depundefined
                  Dep @jay_s_uk
                  last edited by

                  @jay_s_uk thank you very much!

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Unless otherwise noted, all forum content is licensed under CC-BY-SA