Z- Probe consistency issue



  • I am trying to configure my Micromake D1. Been running through the guide and checking my Z probe consistency. I am using the piezo probe. I am having an issue where the trigger height is increasing with ever probe.

    I have manually found Z=0 then run the following g code from a macro
    g1 Z5
    G30 s-1

    These are the results I got and I can replicate a similar pattern each time. I just cannot think what might be causing this. I think maybe that the g1 Z5 isn't being accurate somehow as there is definitely not 0.2+mm of play in the piezo probe.

    4:26:25 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.214 mm
    4:26:21 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.204 mm
    4:26:17 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.194 mm
    4:26:12 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.184 mm
    4:26:07 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.174 mm
    4:26:03 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.174 mm
    4:26:00 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.174 mm
    4:25:56 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.164 mm
    4:25:52 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.164 mm
    4:25:47 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.154 mm
    4:25:42 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.154 mm
    4:25:35 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.144 mm
    4:25:31 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.144 mm
    4:25:28 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.134 mm
    4:25:24 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.134 mm
    4:25:20 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.134 mm
    4:25:16 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.144 mm
    4:25:12 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.144 mm
    4:25:08 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.134 mm
    4:25:04 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.134 mm
    4:24:59 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.134 mm
    4:24:56 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.124 mm
    4:24:52 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.114 mm
    4:24:48 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.114 mm
    4:24:44 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.094 mm
    4:24:39 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.114 mm
    4:24:36 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.124 mm
    4:24:32 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.094 mm
    4:24:28 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.094 mm
    4:24:23 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.074 mm
    4:24:18 PMM98 P0:/macros/ProbeTest
    Stopped at height 0.064 mm
    4:23:35 PMG30 S-1
    Stopped at height 0.044 mm
    4:23:30 PMG1 Z5
    4:23:26 PMG30 S-1
    Stopped at height 0.024 mm


  • administrators

    It could be that your probing speed (F parameter in M558) is too high, so that when the probing move stops the nozzle overshoots and ends up lower than it should be. Then when you do the next G1 Z5 it ends up at slightly less than 5mm. Similarly, if your Z acceleration is set too high, it may be missing steps at the start of the G1 Z5 move.



  • the probing speed is quite slow but when running G1 Z5 it does move very fast. How and where to i change the acceleration speeds?



  • found the settings for acceleration and have halved all of the Z speeds as a test.

    Any thoughts?



  • I was wrong. I don't get consistent results. the number always increases. Just did around 1000 probes and the trigger height went from 0.024 to 0.511.

    I cannot see anything mechanical that would account for this


  • administrators

    What speeds and accelerations are you using, what is your Z steps/mm, and what are the F and T parameters in your M558 command?



  • Here is my config file

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves
    M555 P2 ; Set firmware compatibility to look like Marlin
    ; Automatic saving after power loss is not enabled

    M665 L244.000 R104 H235 B80.0 X0 Y0 Z0
    M666 X0 Y0 Z0 A0 B0
    M208 Z0 S1 ; Set minimum Z

    ; Endstops
    M574 X2 Y2 Z2 S0 ; Set active low endstops
    ;M558 P5 H20 ; Set Z probe type to mode 5
    M558 P5 R0.4 F300 X0 Y0 Z0 H20
    G31 X0 Y0 Z-0.1 P200
    ;https://www.duet3d.com/forum/thread.php?id=2769

    M557 R80 S20 ; Define mesh grid

    ; Drives
    M569 P0 S1 ; Drive 0 goes forward
    M569 P1 S1 ; Drive 1 goes forward
    M569 P2 S1 ; Drive 2 goes forward
    M569 P3 S1 ; Drive 3 goes forward
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping without interpolation
    M92 X100 Y100 Z100 E98 ; Set steps per mm
    M566 X300 Y300 Z300 E1200 ; Set maximum instantaneous speed changes (mm/min) was 1200
    M203 X18000 Y18000 Z9000 E1200 ; Set maximum speeds (mm/min) was 18000
    M201 X250 Y250 Z250 E1000 ; Set accelerations (mm/s^2) was 1000
    M906 X1200 Y1200 Z1200 E1100 I10 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Heaters
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280 ; Set temperature limit for heater 1 to 280C

    ; Tools
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
    G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    ; Network
    M550 PMicroMake D1 ; Set machine name
    M552 S1 ; Enable network

    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Fans
    M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Custom settings are not configured
    M501



  • shouldn't the max speeds for the X Y & Z in the M203 line be the same?



  • Apparently not, as RRF takes this to mean Z moves, rather than strictly Z axis (or back tower).

    As such you can set Z acceleration low if you need to for your probe. It will only affect Z moves not XY moves. My understanding is that it does not potentially unbalance the delta kinematics. Marlin I believe does require X Y and Z to be the same, (or did).



  • buzzby try changing M558 H to 5 instead of 20… ALso set G31 P to 100, or consider changing to M558 P8 instead of P5 which eliminates any filtering on the z probe signal, and sharpens it up.

    Not sure if it will help but 20 is only needed when your Z height is fairly unknown, or if you frequently change build plates of considerable difference in thickness.



  • Thanks for the input guys.

    Here are my current settings

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves
    M555 P2 ; Set firmware compatibility to look like Marlin
    ; Automatic saving after power loss is not enabled

    M665 L244.000 R104 H235 B80.0 X0 Y0 Z0
    M666 X0 Y0 Z0 A0 B0
    M208 Z0 S1 ; Set minimum Z

    ; Endstops
    M574 X2 Y2 Z2 S0 ; Set active low endstops
    ;M558 P5 H20 ; Set Z probe type to mode 5
    M558 P8 R0.4 F300 X0 Y0 Z0 H5
    G31 X0 Y0 Z-0.1 P100
    ;https://www.duet3d.com/forum/thread.php?id=2769

    M557 R80 S20 ; Define mesh grid

    ; Drives
    M569 P0 S1 ; Drive 0 goes forward
    M569 P1 S1 ; Drive 1 goes forward
    M569 P2 S1 ; Drive 2 goes forward
    M569 P3 S1 ; Drive 3 goes forward
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping without interpolation
    M92 X100 Y100 Z100 E98 ; Set steps per mm
    M566 X150 Y150 Z150 E1200 ; Set maximum instantaneous speed changes (mm/min) was 1200
    M203 X9000 Y9000 Z9000 E1200 ; Set maximum speeds (mm/min) was 18000
    M201 X125 Y125 Z125 E1000 ; Set accelerations (mm/s^2) was 1000
    M906 X1200 Y1200 Z1200 E1100 I10 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    Still seeing the probe activation height increase over time.

    What is strange/consistent is that the value always increases by 0.0. Although not after every probe. X number of prob points will be the same height and then it will trigger 0.01 higher.



  • Something is odd there, can you post photos of machine and hotend + z-probe closeups?

    Can you also try a much lower Z jerk (M566 Z10)?
    Z never has to move fast.

    While you're there (maybe later) change your X Y accelerations to 1000 (leave Z at 125) otherwise your printer will take forever to print anything. XY at 3000 isn't unreasonable, I've used 9000 before too.


  • administrators

    I just ran a similar test on my delta:

    18:22:39
    Stopped at height -0.136 mm
    Finished printing file TestProbeRepeatability.g, print time was 0h 1m
    18:22:39
    Stopped at height -0.131 mm
    18:22:38
    Stopped at height -0.136 mm
    18:22:37
    Stopped at height -0.136 mm
    18:22:36
    Stopped at height -0.131 mm
    18:22:35
    Stopped at height -0.131 mm
    18:22:34
    Stopped at height -0.136 mm
    18:22:33
    Stopped at height -0.131 mm
    18:22:33
    Stopped at height -0.136 mm
    18:22:32
    Stopped at height -0.131 mm
    18:22:31
    Stopped at height -0.136 mm
    18:22:30
    Stopped at height -0.136 mm
    18:22:29
    Stopped at height -0.136 mm
    18:22:28
    Stopped at height -0.136 mm
    18:22:28
    Stopped at height -0.136 mm
    18:22:27
    Stopped at height -0.136 mm
    18:22:26
    Stopped at height -0.136 mm
    18:22:25
    Stopped at height -0.136 mm
    18:22:24
    Stopped at height -0.136 mm
    18:22:23
    Stopped at height -0.136 mm
    18:22:22
    Stopped at height -0.136 mm
    18:22:22
    Stopped at height -0.136 mm
    18:22:21
    Stopped at height -0.136 mm
    18:22:20
    Stopped at height -0.136 mm
    18:22:19
    Stopped at height -0.136 mm
    18:22:18
    Stopped at height -0.136 mm
    18:22:17
    Stopped at height -0.136 mm
    18:22:17
    Stopped at height -0.136 mm
    18:22:16
    Stopped at height -0.136 mm
    18:22:15
    Stopped at height -0.136 mm
    18:22:14
    Stopped at height -0.136 mm
    18:22:13
    Stopped at height -0.136 mm
    18:22:12
    Stopped at height -0.131 mm
    18:22:07
    M32 TestProbeRepeatability.g
    File TestProbeRepeatability.g selected for printing

    So I don't see the same problem. I have these parameters:

    M201 X3000 Y3000 Z3000 E1000:120 ; Accelerations (mm/s^2)
    M203 X18000 Y18000 Z18000 E3600:3600 ; Maximum speeds (mm/min)
    M566 X600 Y600 Z600 E600:40 ; Maximum instant speed changes
    M558 P8 X0 Y0 Z0 H3 F1000 T10000 R0.4 S0.02 A4

    Could it be as simple as a loose pulley?



  • Here you go









  • It might not be obvious from the pictures but YES the nozzle is the lowest point.



  • If the suggested movement settings did not improve this problem then I would definitely make sure the drive pulley grubscrews are tight. Do your motors have flats on the shafts? If not take them off and grind flats into them.

    Next stop is the belts. They sometime wear in just one place. So quick check for that is to raise the bed up (or just put something on top of the bed which is 70+mm thick like a biscuit tin. Change your z height in M665 (in config.g and config_override.g to avoid a head crash), and repeat the test. If it performs better replace all of the belts.

    How well does it calibrate? Especially if you repeat the calibration over and over, the dev. value should get smaller with each iteration then stabilise after 1-3 tries. If it doesn't follow this pattern I'd still say mechanical issue.



  • If the suggested movement settings did not improve this problem then I would definitely make sure the drive pulley grubscrews are tight. Do your motors have flats on the shafts? If not take them off and grind flats into them.

    Next stop is the belts. They sometimes wear in just one place. So quick check for that is to raise the bed up (or just put something on top of the bed which is 70+mm thick like a biscuit tin. Change your z height in M665 (in config.g and config_override.g to avoid a head crash), and repeat the test. If it performs better replace all of the belts.

    How well does it calibrate? Especially if you repeat the calibration over and over, the dev. value should get smaller with each iteration then stabilise after 1-3 tries. If it doesn't follow this pattern I'd still say mechanical issue.

    I'm assuming the probe was a kit and you have assembled it? I can't think of an assembly error that would cause this drift, but you can send the assembled probe to me I'll check it on my test rig to rule it out,adjust it if needed and send it back.



  • So it appears that I am an idiot. 2 of my pulley set screws were lose but the belt was so tight I could see it till I released the tension. They have flats on the shaft so have retightened all 6 sets screws.

    Ran the prob test again for 100 cycles and get a difference of 0.01.

    Ran the auto calibrate and have that down to 0.04

    ran bed mesh and get the following
    Number of probe points: 45

    Probe area: 201.1 cm²

    Maximum deviations: -0.071 / 0.106 mm

    Mean error: 0.004 mm

    RMS error: 0.038 mm

    About to repeat everything with the bed at temp and then try a print.

    Thank you everyone for you help. I will need some more soon.



  • Glad its working, as I learned at university, common things occur commonly.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.