Different XY speed for probing moves
-
@nahsiro said in Different XY speed for probing moves:
I have a DIY CoreXY printer with 3 independent Z-axes. My Z lead-screws are M10, and they move slower than XY axis. Thus, in my M558 command, I had to define a speed F500 so that the Z axis doesn't dive faster than the hardware can handle.
In your M203 command you should have specified the max feed rate for each axis.
So you should be able to specify the desired travel speed in M558 based on the XY axes settings.
The Z axis should not be able to exceed it's max feed rate even if requested.
-
@fcwilt I have that, but I think it's ignoring it. Here is my config.g
; Configuration file for Omnicore ; Communication and general M111 S0 ; Debug off M550 POmnicore ; Machine name and Netbios name (can be anything you like) ;M551 Pmyrap ; Machine password (used for FTP) ; Wifi Networking M552 S1 ; Enable WiFi M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Axis and motor configuration M669 K1 ; _RRF3_ change M667 to M669 ; set CoreXY mode M584 X0 Y1 Z2:5:6 E3:4 ; Map Z to drivers 2, 5, 6. Define unused drivers 3,4 as extruders M569 P0 S1 ; physical drive 0 goes forwards (X-motor) M569 P1 S1 ; physical drive 1 goes forwards (Y-motor) M569 P2 S1 ; physical drive 2 goes forwards (Right Z-motor) M569 P3 S1 ; physical drive 3 goes forwards (1st extruder) M569 P4 S1 ; physical drive 4 goes forwards (BLTouch) M569 P5 S1 ; physical drive 5 goes forwards (Front Z-motor) M569 P6 S1 ; physical drive 6 goes forwards (Left Z-motor) ;Leadscrew locations M671 X262:-85:262 Y390:180.5:-70 S25 ;Front left, Rear Left, Right S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew ; Endstops M574 X1 S1 P"!xstop" ; configure active-high endstop for low end on X via pin xstop M574 Y1 S1 P"!ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z0 ; configure Z-probe as endstop M564 H0 ; Limit Axes M557 X80:300 Y30:295 P7:7 ; Define mesh probing grid M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping for axes& extruder, with interpolation M906 X1000 Y1000 Z1000 E1000 I30 ; Set motor currents (mA) M201 X3000 Y3000 Z100 E1500 ; Accelerations (mm/s^2) M203 X24000 Y24000 Z700 E3600 ; Maximum speeds (mm/min) M566 X800 Y800 Z80 E800 ; Maximum jerk speeds mm/minute M92 X80.00 Y80.00 Z1600.00 E98.00 ; set steps per mm ; Axis Limits M208 X300 Y345 Z375 ; set axis maxima and high homing switch positions (adjust to suit your machine) M208 X0 Y0 Z-1.0 S1 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed) ; Thermistors M308 S0 P"bedtemp" Y"thermistor" A"bed_temp" T100000 B3950 R4700 H0 L0 ;_RRF3_ Bed thermistor, connected to bedtemp on Duet2 ;If you have a Slice Engineering thermistor, comment out the next line M308 S1 P"e0temp" Y"thermistor" A"Extruder_temp" T100000 B4725 R4700 C7.06e-8 H0 L0 ;_RRF3_ duet3 e3d ;Additional Temperatures/heater settings M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper M950 H0 C"bedheat" Q25000 T0 ;_RRF3_ define Bed heater is on bedheat M950 H1 C"e0heat" T1 ;_RRF3_ define Hotend heater is on e0heat M140 H0 ; Configure bed heater M143 H0 S120 M307 H0 R1.099 C332.207:332.207 D1.97 S0.50 V12.2 B0 ; Bed Heater M307 H1 R2.473 C159.682:159.682 D6.35 S1.00 V12.1 B0 ; Nozzle heater M570 H0 P5 S180 T10 ; detect bed heater fault after 180 seconds M570 H1 P5 S180 T15 ; detect end heater fault after 180 seconds M143 S285 ; Max hot end temperature ; Fans M950 F1 C"fan0" Q25000 ; create fan 1 on pin fan1 and set its frequency (Part Cooling) M106 P1 S0.5 H-1 T45 C"Part_Cooling_Fan" ; set fan 1 value. Thermostatic control is turned on ; Tool definitions M563 P0 S"E3Dv6" D0 H1 F1 ; Define tool 0 G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ;BLTouch - comment out the following 3 lines if using a IR Probe M558 P9 C"^zprobe.in" H4 R1 F600 T2400 A4 S0.02 ; _RRF3_ BLTouch connected to Z probe IN pin M950 S3 C"duex.pwm1" ; _RRF3_ Define BLTouch Servo (S0) on duet pwm1 G31 X31.225 Y10.5 Z2.6 P25 ; Customize your offsets appropriately - do a paper test, and put the probed value in the Z value here T0 ; select first hot end M501 ; Read stored parameters
-
You mentioned that the F parameter in M558 did control the speed of the actual probing but when lifting the probe it appeared to be using a faster speed.
Is it faster than the max Z speed set in M203?
How is the faster speed causing problems?
Frederick
-
I have noticed this behaviour too. I think it uses the max z speed from the M203 when lifting the z axis after a probe. The dive speed correctly follows what is in M558. As long as your max z speed is set within the machine's limits you should be ok.
-
@tekkydave @Nahsiro what firmware version are you running?
Ian
-
@droftarts I'm on 3.3RC2
-
@droftarts I'm on 3.2.
@tekkydave @fcwilt You're right actually, turns out I was doing it wrong. 700 mm/min is too much for my Z axis using 600 mm/min is working fine. -
@nahsiro said in Different XY speed for probing moves:
@droftarts I'm on 3.2.
@tekkydave @fcwilt You're right actually, turns out I was doing it wrong. 700 mm/min is too much for my Z axis using 600 mm/min is working fine.Glad to hear you got it sorted.
I'm surprised that when homing the Z axis that the excessive speed wasn't apparent.
Frederick
-
@fcwilt when homing it uses the Fxxx value in the G1 command which is usually much lower than the max. I think there needs to be another speed parameter in M558 or G30 to cover the G30 lift speed. Or it should use the dive speed for the lift. Maybe this is a bug?
-
G30 dive speed is controlled by the M558 F parameter. The speed the probe then lifts in Z, and moves to the next probe point, is controlled by the M558 T parameter. If this is higher than the max Z speed set in config.g, then max Z speed is used. Make sure your Z is capable of actually running at the max Z speed you have set! So, not a bug.
If you want slower lift speeds, you could reduce max Z speed (and/or jerk and acceleration) before probing, and revert afterwards. If repeated probing shows the gap getting smaller, or is inconsistent, your Z axis is probably skipping steps, and you need to tune jerk, acceleration and max speed until it doesnβt.
Ian
-
@droftarts Surely the T parameter is for the X & Y axis speeds. Why would it be applied to the Z axis at all? It assumes the Z axis has the same speed capabilities as X & Y. Only the Z max speed is stopping it from moving too fast. If that is set correctly then all is good but it may not be for someone setting up RRF for the first time.
Whilst I agree this isn't a bug as it is probably designed to work that way I think its something that needs looking at.
I would rather see the lift speed being set by the F parameter (the first one if there are two as in the most recent releases). Either that or a new parameter for lift speed in M558. -
@tekkydave if the Z max speed isn't set up correctly, users will have other issue besides this one. I'm sure that your suggestion of using the F speed would annoy many users, because it would slow down probing.
-
@dc42 Fair point and I suppose it depends on the system. On my D-Bot I probe at 6mm/s (F param). It moves between probes at 150mm/s (T param). On each probe it only lifts 3mm. It tries to do it at 150mm/s which is way beyond the capabilities of the Z axis which has a max speed of 10mm/s set.
Therefore it probes at 6mm/s & lifts at 10mm/s. To a raw beginner it may not be obvious what is going on. In my case it would only have a minor impact on probing speed but if a system was lifting say, 20mm between probes then it would.
Maybe just a note in the M558 gcode documentation to clarify that it will attempt to move all 3 axes at the Tnnn speed to avoid any future confusion. -
@tekkydave I have added note to the description of the M558 T parameter.
-
@dc42 Cheers. I still think the Z lift speed should have it's own M558 param but I'll shut up and go away now
-
@tekkydave said in Different XY speed for probing moves:
@dc42 Cheers. I still think the Z lift speed should have it's own M558 param but I'll shut up and go away now
Did we verify that the T parameter is actually being used for the Z lift speed?
Or does it simply use the Z max speed from M203?
If the Z max speed is putting on limit on the Z lift speed you, in effect, have the "missing" speed parameter from M558. Just temporarily set Z max with a M203 before you begin probing and restore it when done.
I would test it myself if I didn't already have a two page "to-do" list that I need to attend to to get ready for summer.
-
@fcwilt Just tested it by changing my M558 from:
M558 P1 C"zprobe.in" R0.25 H3 F360 T9000 A5 S0.03
to
M558 P1 C"zprobe.in" R0.25 H3 F360 T540 A5 S0.03
and the lift speed went down from 10mm/s (z max speed) to 9mm/s (540mm/min)
so yes - it is using the T param to control the Z speed.
-
@tekkydave said in Different XY speed for probing moves:
@fcwilt Just tested it by changing my M558 from:
so yes - it is using the T param to control the Z speed.Thanks much.
I've never encountered this issue before because I have always set my max speeds based on testing well before I get around to dealing with a probe.
Good to know how it actually works.
Frederick
-
@fcwilt I actually set all the probing move speed a lot lower when I wasn't printing a lot but it was apparent to some extent. I kinda just lived with it because it doesn't skip steps when the rods are clean and lubed. Also, things like the dive height also affected how quickly it would start to loose steps. A short dive height < 5mm worked better. And probing a single point was not as dramatic as multiple points. My max z-axis speed is probably somewhere between 600 and 700 mm/min, so depending on how much friction the threaded rods experienced, it would z probe fine or not.
I also only truly started to investigate when I started getting "motor phase may be disconnected errors".
I checked all the motor wires and found no issue there
Then I started visibly seeing step lost in Z. Plus I also wanted to probe faster and be hands-off as much as possible in the pre-print process.
Lessons learned:-
keep threaded rod lubricated (obviously)
-
Read the fine print of my gcode commands and understand how they inter-relate
-
give myself some room around the max limits of the machine in the config.
Thanks to you all for helping me learn a bit and solve this issue.
Thanks @dc42 for adding the note in the documentation.
@tekkydave I second having the z lift speed independent for probing. -
-
Does it really need to be a separate parameter in M558? It's got nearly a dozen as it is and it's quite easy to modify the Z max speed before and after probing. bed.g and mesh.g seem like the right place to control this and it's possible right now.