Solved X / U Offset
-
I have a .4mm offset between my X (T0) and U (T1) on my IDEX. The U axis (T1) prints .4 to the right (X+) according to my tests. I have read the documentation for calibrating an IDEX as well as G10 and M563 commands in the dictionary. I'm hoping someone can help me clarify what I need to change to adjust for that offset in my G10.
; Configuration file for Duet WiFi (firmware version 3.4.5) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.15 on Sun Feb 19 2023 17:01:06 GMT-0500 (Eastern Standard Time) ; 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 - ESTEPS M205 X12.00 Y12.00 Z1.00 U12.00 E2.00:2.00 ; set maximum instantaneous speed changes (mm/s^2) - JERK M203 X12000.00 Y12000.00 Z360.00 U12000.00 E3600.00:3600.00 ; set maximum speeds (mm/min) M201 X2000.00 Y2000.00 Z20.00 U2000.00 E250.00:250.00 ; set maximum ACCELERATIONS (mm/s^2) M204 P200 T2000 ; set print & travel 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 SHAPER M572 D0:1 S0.080 ; 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 U360.3 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" S1 ; 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.42 ; 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 X0 Y1.3 Z.13 ; 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"
-
@droftarts @Phaedrux is this something you could help me with please? Sorry for being a PITA. TYIA!
-
@SonnyD1 I don't have an IDEX, and haven't done this calibration before. However, there are two ways of adjusting the X/U position of the second tool, as it says in this section: https://docs.duet3d.com/User_manual/Machine_configuration/Configuration_IDEX#creating-a-tool-that-uses-just-one-carriage
To get both tools printing at the same place along the X axis, either adjust the homing positions of the U axes via the M208 commands, or adjust the G10 P1 U offset. See the Calibration section below.
So you don't adjust the G10 P1 X parameter. See the examples in the above linked section.
If this works for you, I'll update the calibration section to make this more clear, as it only mentions adjusting M208 U axis limits in that section.
Ian
-
@droftarts I read that but I missed the M208 part. I was focusing on the G10 which is why I asked. That didn't sound right. So my current M208 Maximum reads M208 X290 Y305 U360.3 Z300 S0. If I am .4mm to far to the right then my new M208 Maximum should read M208 X290 Y305 U360.7 Z300 S0??? I would shift the U (T1) to the right (X+) by the .4mm right? I'll make that change and print the test again. It would be better to clarify the documentation a bit.
***UPDATE: That new M208 value put it right on. Moving it more to the right (X+)is so confusion to me but it is actually correct with X and U in perfect alignment now. Thank you very much for your help.
-
-
-
@SonnyD1 Thanks for testing, I've made the documentation a bit clearer. I'll also make it clear that you can adjust the U position relative to X either by changing the M208 U parameter(s) (as you did), or by changing the G10 P# U parameter. I think these two paragraphs in the G10 documentation make it clear what you need to do if you choose to modify the position using G10:
Tool offsets are applied after any X axis mapping has been performed. Therefore if for example you map X to U in your M563 command to create the tool, you should specify a U offset not an X offset. If you map X to both X and U, you can specify both offsets.
i.e. use
G10 P1 U...
Tool offsets are given as the offset of the nozzle relative to the print head reference point, so the signs are opposite to what you might expect because tool offsets are subtracted from the required printing locations during printing.
i.e. while you had to add 0.4mm to
M208 ... U360.3 ... S0
to shift the nozzle position to the left, with G10 you would setG10 P# U-0.4
, because you want it to move to the left.Ian
-
@droftarts That is outstanding. I'm glad I could help. I'm the one that set this IDEX up in the beginning but I couldn't remember how. All it took was a clogged nozzle resulting in a nozzle change to throw all my work out of whack. I couldn't remember how I did it in the first place thus this post. As usual, you've managed to rescue me. I have a much better understanding of the offset and will hopefully retain it better. Thank you!