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

    IDEX U Axis calibration

    Scheduled Pinned Locked Moved Solved
    General Discussion
    2
    14
    674
    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.
    • SonnyD1undefined
      SonnyD1
      last edited by droftarts

      I am trying to figure out how to calibrate the z offset for my U axis on a IDEX. I have read the incredibly vague documentation on the subject and really not sure how to proceed. I can't seem to decipher how the M563 and the G10 command should look. I would really appreciate some help please. I am adding my config.g. If anything else is needed, please don't hesitate to ask. TYIA!

      ; General preferences
      G21															; work in milimeters
      G90                                                         ; send absolute coordinates...
      M83                                                         ; ...but relative extruder moves
      M550 P"IDEX"                                                ; set printer name
      M111 S0														; debug off
      
      ; Network
      ;M552 S1                                                     ; enable network
      M586 P0 S1                                                  ; enable HTTP
      M586 P1 S1                                                  ; enable FTP
      M586 P2 S0                                                  ; disable Telnet
      M575 P1 B57600 S1											; enable support for PanelDue
      
      ; Drives
      M569 P0 S1                                                  ; physical drive 0 goes forwards - X stepper
      M569 P1 S1                                                  ; physical drive 1 goes forwards - Z stepper (left)
      M569 P2 S1                                                  ; physical drive 2 goes forwards - Z stepper (right)
      M569 P3 S1                                                  ; physical drive 3 goes forwards - E0 stepper
      M569 P6 S1                                                  ; physical drive 6 goes forwards - Y stepper (left)
      M569 P7 S0													; physical drive 7 goes backwards - Y stepper (right)
      M569 P8 S1													; physical drive 8 gows forwards - U stepper 
      M569 P9 S1													; physical drive 9 goes forwards - E1 stepper
      M584 X0 Y6:7 Z1:2 U8 E3:9                                   ; set drive mapping
      M350 X16 Y16 Z16 U16 E16:16 I1                              ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z800.00 U80.00 E408.21:408.21             ; set steps per mm
      M205 X10.00 Y10.00 Z1.00 U10.00 E2.00:2.00          		; set maximum instantaneous speed changes (mm/min) - jerk
      M203 X6000.00 Y6000.00 Z180.00 U6000.00 E1200.00:1200.00    ; set maximum speeds (mm/min)
      M201 X750.00 Y800.00 Z20.00 U750.00 E250.00:250.00          ; set accelerations (mm/s^2)
      M906 X1750 Y1750 Z1750 U1750 E600:600 I30					; set motor currents (mA) and motor idle factor in per cent
      M593 P"mzv" F60 S.7										; set input shaping
      M572 D0:1 S0.115												; set pressure advance for T0 & T1
      M84 S30                                                     ; Set idle timeout
      
      ; Axis Limits
      M208 X-26 Y0 U0 Z0 S1                                       ; set axis minima
      M208 X290 Y305 U320 Z300 S0                                 ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"e1stop"                                        ; configure switch-type (e.g. microswitch) endstop for low end on X via pin e1stop
      M574 U2 S1 P"duex.e6stop"									; configure switch-type (e.g. microswitch) endstop for high end on U via pin exp.e6stop
      M574 Y1 S1 P"duex.e5stop"                                   ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin exp.e5stop
      M574 Z1 S2                                                  ; configure Z-probe endstop for low end on Z
      M591 D0 P1 C"xstop" S0							         	; configure filament monitor (simple switch) for E0
      M591 D1 P1 C"duex.e4stop" S0								; configure filament monitor (simple switch) for E1
      
      ; Emergency Stop
      M950 J1 C"e0stop"											; identify pin number for emergency stop
      M581 P1 T0 S1 R0									        ; invoke trigger 0 when an inactive-to-active edge is detected on input 0 or input 3 and a file is being printed from SD card
      
      ; BLTouch
      M950 S0 C"duex.pwm1"                                        ; create servo pin 0 for BLTouch
      M558 P9 C"^zprobe.in" H5 F120 T6000                         ; set Z probe type to bltouch, connected to zprobe.in and the dive height + speeds
      G31 P500 X-31 Y-14.5 Z3.24                                  ; set Z probe trigger value, offset and trigger height. If you have to move the nozzle closer to the bed, increase the G31 Z value by the amount of baby stepping used. If you have to move the nozzle farther away from the bed, decrease the G31 Z value by the amount of baby stepping used.
      M557 X35:259 Y25:290 P5:5                                   ; define mesh grid
      M376 H10													; taper off bed compensation over 10mm
      
      ; Heaters
      M308 S0 P"duex.e4temp" Y"thermistor" T100000 B3950          ; configure sensor 0 as thermistor on pin duex.e4temp
      M950 H0 C"bedheat" T0                                       ; create bed heater output on bedheat and map it to sensor 0
      M307 H0 R0.901 K0.249:0.000 D1.86 E1.35 S1.00 B0            ; enable 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 120C
      M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8      ; configure sensor 1 as thermistor on pin e0temp
      M950 H1 C"e0heat" T1                                        ; create nozzle heater output on e0heat and map it to sensor 1
      M307 H1 R4.899 K0.886:0.346 D1.80 E1.35 S1.00 B0 V24.0      ; disable bang-bang mode for heater and set PWM limit
      M143 H1 S300                                                ; set temperature limit for heater 1 to 300C
      M308 S2 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin duex.e3temp
      M950 H2 C"duex.e6heat" T2                                   ; create nozzle heater output on duex.e6heat and map it to sensor 2
      M307 H2 R4.493 K0.675:0.344 D2.01 E1.35 S1.00 B0 V24.1      ; disable bang-bang mode for heater and set PWM limit
      M143 H2 S300                                                ; set temperature limit for heater 2 to 300C
      
      ; Fans
      M950 F0 C"fan2" Q500                                        ; create fan 0 on pin fan0 and set its frequency
      M106 P0 S0 H-1                                              ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1" Q500                                        ; create fan 1 on pin fan1 and set its frequency
      M106 P1 S1 H1 T45                                           ; set fan 1 value. Thermostatic control is turned on at 45c
      M950 F2 C"duex.fan3" Q500                                   ; create fan 2 on pin duex.fan3 and set its frequency
      M106 P2 S0 H-1                                              ; set fan 2 value. Thermostatic control is turned off
      M950 F3 C"duex.fan4" Q500                                   ; create fan 3 on pin duex.fan4 and set its frequency
      M106 P3 S1 H2 T45                                           ; set fan 3 value. Thermostatic control is turned on at 45c
      
      ; Tools
      M563 P0 D0 H1 F0                                            ; define tool 0 that used low end X carriage
      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 H2 F2 X3                                         ; define tool 1 that used high end U carriage
      G10 P1 X320 Y0 Z0                                           ; set tool 1 axis offsets
      G10 P1 R0 S0                                                ; set initial tool 1 active and standby temperatures to 0C
      
      ; Configure Accelerometer
      ;M955 P0 I50 C"spi.cs4+spi.cs3" 
      
      ; IDEX
      ; Create a tool that prints 2 copies of the object using both carriages
      ;M563 P1 D0:1 H1:2 X0:3 F0:2 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U
      ;G10 P1 X50 Y0 U-50 S0 R0 ; set tool offsets and temperatures
      ;M567 P1 E1:1 ; set mix ratio 100% on both extruders
      
      ; Miscellaneous
      T0                                                          ; select first tool
      M98 P"startwifi.g"
      
      droftartsundefined 1 Reply Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @SonnyD1
        last edited by

        @SonnyD1 do you mean the U offset with respect to X? Have you followed these instructions? https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_IDEX#calibration

        When your U axis homes at X maximum, it sets the U position to the max value for U in M208. This is on the X axis as well. So when you home U, it should be setting U position to (according to your M208 in config) 320. When you move U to 100, this should be near to X100. Then adjust the actual position either by changing M208 U maximum, or using G10 for the second tool.

        Also, check your config.g by sending M98 P"config.g". What firmware version?

        Ian

        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

        SonnyD1undefined 1 Reply Last reply Reply Quote 0
        • SonnyD1undefined
          SonnyD1 @droftarts
          last edited by SonnyD1

          @droftarts I am working the Z offset right now and am focused solely on that ATM. X will be next and possibly a later post. Yes I have read that documentation in its entirety as well as G10 and M563. If I could get an example of what right looks like in my case I should be able to figure it out. That portion of the documentation lacks good examples and explanations.
          Configuration file for Duet WiFi (firmware version 3.4.5)

          droftartsundefined 1 Reply Last reply Reply Quote 0
          • droftartsundefined
            droftarts administrators @SonnyD1
            last edited by

            @SonnyD1 As it says in the instructions I linked, "Get the X axis working properly first, especially that it is printing on a level bed." If you're working on getting the Z offset for the first tool correct, follow the documentation for a single tool printer first. Most likely you need this page: https://docs.duet3d.com/User_manual/Connecting_hardware/Z_probe_testing

            Ian

            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

            SonnyD1undefined 1 Reply Last reply Reply Quote 0
            • SonnyD1undefined
              SonnyD1 @droftarts
              last edited by

              @droftarts The Z offset is perfect for the X. I ran a test on the U and discovered there is a -.34 difference in offset between the X and U. How do I put that in my config (T1 G10?) so that the printer know to adjust for that offset after a tool change. I'm not concerned with duplication/mirror mode ATM. I just want them printing at the same height after tool change so I can move on the tuning the X.

              droftartsundefined 1 Reply Last reply Reply Quote 0
              • droftartsundefined
                droftarts administrators @SonnyD1
                last edited by

                @SonnyD1 Again, here https://docs.duet3d.com/User_manual/Machine_configuration/Configuration_IDEX#calibration it says:

                With both tools at the same Z height, or the difference accounted for in the G10 P1 Zn.n command

                Make sure that the nozzles are parked off the build plate, or the X tool is going to hit the bed when it comes up to be the correct height for the U tool on the first, or first couple of, layer.

                Ian

                Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                SonnyD1undefined 1 Reply Last reply Reply Quote 1
                • SonnyD1undefined
                  SonnyD1 @droftarts
                  last edited by

                  @droftarts said in IDEX U Axis calibration:

                  With both tools at the same Z height, or the difference accounted for in the G10 P1 Zn.n command

                  Right... I read that and I dont understand what its telling me to do. On my T1 G10 line is it telling me to put that offset amount in the Z? So that it would read like this: G10 P1 X320 Y0 Z-.34 ? Then for my X, I would do an alignment print and adjust the change in the X value?

                  droftartsundefined 1 Reply Last reply Reply Quote 0
                  • droftartsundefined
                    droftarts administrators @SonnyD1
                    last edited by

                    @SonnyD1 Yes. I can't remember if Z should be negative or positive for a U axis Tool that is higher (?) than the X axis tool, though. However, that's easy enough to test.

                    Also, the X320 in your G10 command should probably be X0 to start with. If homing U gives the U axis a value of 320 at the homing point (max U and max X), you don't want to then offset it a further 320. Most likely that is why you got no movement. See my earlier comment about this.

                    Ian

                    Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                    SonnyD1undefined 1 Reply Last reply Reply Quote 0
                    • SonnyD1undefined
                      SonnyD1 @droftarts
                      last edited by SonnyD1

                      @droftarts Ok that fixed a couple things. If the offset is negative then I put it in as a positive and it worked. It also did the tool switch properly as well. My T1 now reads:

                      M563 P1 D1 H2 F2 X3 ; define tool 1 that used high end U carriage
                      G10 P1 X0 Y0 Z.34 ; set tool 1 axis offsets
                      G10 P1 R0 S0

                      Now I move forward and work the X offset piece. I have a better understanding as to how it works, what and what to do. As usual you've come to my rescue. Thanks for your help!

                      droftartsundefined 1 Reply Last reply Reply Quote 0
                      • droftartsundefined
                        droftarts administrators @SonnyD1
                        last edited by

                        @SonnyD1 great, glad it’s working. Is there anything specific in the documentation that could be improved? Perhaps making it clear that after homing, the U axis position is the same as the X axis position (except in Mirror mode)? A bit more detail on setting the Z offset of the U axis tool? Anything else?

                        Ian

                        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                        SonnyD1undefined 1 Reply Last reply Reply Quote 0
                        • T3P3Tonyundefined T3P3Tony marked this topic as a question
                        • T3P3Tonyundefined T3P3Tony has marked this topic as solved
                        • SonnyD1undefined
                          SonnyD1 @droftarts
                          last edited by

                          @droftarts adding a code example for the G10 showing the offsets and explaining how one get them. I’m any case, I’m complete I think.B19DE713-D913-48F7-837B-E346061DEA90.jpeg

                          droftartsundefined 2 Replies Last reply Reply Quote 2
                          • droftartsundefined
                            droftarts administrators @SonnyD1
                            last edited by

                            @SonnyD1 Can you post your config.g as an example?

                            Ian

                            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                            SonnyD1undefined 1 Reply Last reply Reply Quote 0
                            • droftartsundefined
                              droftarts administrators @SonnyD1
                              last edited by

                              @SonnyD1 Tool and Z probe offsets are also covered conceptually here: https://docs.duet3d.com/en/User_manual/Tuning/Defining_tool_and_Z_probe_offsets

                              Ian

                              Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                              1 Reply Last reply Reply Quote 0
                              • SonnyD1undefined
                                SonnyD1 @droftarts
                                last edited by

                                @droftarts ; Tools
                                M563 P0 D0 H1 F0 ; define tool 0 that used low end X carriage
                                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 H2 F2 X3 ; define tool 1 that used high end U carriage
                                G10 P1 X0 Y1.6 Z.34 ; set tool 1 axis offsets
                                G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

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