IDEX U Axis calibration
-
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"
-
@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
-
@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) -
@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
-
@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.
-
@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
-
@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?
-
@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
-
@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 S0Now 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!
-
@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
-
-
-
@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.
-
@SonnyD1 Can you post your config.g as an example?
Ian
-
@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
-
@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