Z-Probe problems after upgrade to 92.8

I had Z probing working swimmingly in 92.6, with the single problem that my plate (glass) warps ever so slightly when it gets hot, so I was looking forward to bed correction/distortion correction in 92.8. Here's my probe configuration:

#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define Z_PROBE_BED_DISTANCE 40
#define Z_PROBE_PIN 63
#define Z_PROBE_PULLUP 1
#define Z_PROBE_ON_HIGH 0
#define Z_PROBE_X_OFFSET -20
#define Z_PROBE_Y_OFFSET 10
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 6
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 5
#define Z_PROBE_REPETITIONS 1
#define Z_PROBE_HEIGHT 22.1
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define Z_PROBE_REQUIRES_HEATING 0
#define Z_PROBE_MIN_TEMPERATURE 150
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 40
#define Z_PROBE_Y1 40
#define Z_PROBE_X2 250
#define Z_PROBE_Y2 40
#define Z_PROBE_X3 150
#define Z_PROBE_Y3 250
#define BED_LEVELING_METHOD 1
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 3
#define BED_LEVELING_REPETITIONS 5
#define BED_MOTOR_1_X 0
#define BED_MOTOR_1_Y 0
#define BED_MOTOR_2_X 200
#define BED_MOTOR_2_Y 0
#define BED_MOTOR_3_X 100
#define BED_MOTOR_3_Y 200
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
#define FEATURE_AXISCOMP 0
#define AXISCOMP_TANXY 0
#define AXISCOMP_TANYZ 0
#define AXISCOMP_TANXZ 0

With 92.6, I ran this script to level the bed:

G28 X Y;
G1 Z40;
M340 P0 S580;
G32;
M340 P0 S1500;
G1 X0 Y0 F12000
G1 Z0

This swings the z-probe servo into position, moves the bed to 40mm, then probes (G32), then returns the servo and the carriage, finally moving the Z platform to 0. 

After upgrading to 92.8 with an EEPROM overwrite, the G32 now initiates what appears to be a move to Z=20. This causes my microswitch to strike the edge of the build plate and wreaks all sorts of havoc. 

The G33 is even crazier, as it seems to make three moves on the Z axis, one of which takes it to 150mm+. 

Any thoughts? What have I missed here? I need it to go to 35 or 40, swing the probe down, probe, store the values, fold up the servo, the return the carriage and Z platform to the appropriate zero position from which to print. 

Comments

  • Despite not using a servo to deploy a probe I also noticed problems moving to 0.92.8.
    In you case could be because the firmware doesn't know quite yet where it is in terms of Z position.

    I'd try and set the Z homing done before running G32.
    Call the G28 Z0 after you deploy the probe, and make sure the probe is above the bed.
  • The servo command should be in the z probe start/end command. That is why we have them:-)

    You did no Z home that can make problems as result is dependent on unknown start height. Adding S2 to G32 would then even create wrong z length for the printer.

    If you start with Z > z probe height + max z probe distance + 0.1 it enforces this as starting height. With your G1 Z40 that should be no problem even if we do not stop at real Z40.
  • If I put the servo command in the Z-Probe start script, will it also move the bed to z probe height + max z probe distance, or do I need to do that first? I'm assuming I need to move the probe over the bed, move the bed down out of the way, and swing the servo down?

    Thanks!

  • Ok, after reading the comments (thanks!), I changed my Z probe configuration such:

    #define Z_PROBE_Z_OFFSET 0
    #define Z_PROBE_Z_OFFSET_MODE 0
    #define UI_BED_COATING 1
    #define FEATURE_Z_PROBE 1
    #define Z_PROBE_BED_DISTANCE 35
    #define Z_PROBE_PIN 63
    #define Z_PROBE_PULLUP 1
    #define Z_PROBE_ON_HIGH 0
    #define Z_PROBE_X_OFFSET -20
    #define Z_PROBE_Y_OFFSET 10
    #define Z_PROBE_WAIT_BEFORE_TEST 0
    #define Z_PROBE_SPEED 6
    #define Z_PROBE_XY_SPEED 200
    #define Z_PROBE_SWITCHING_DISTANCE 5
    #define Z_PROBE_REPETITIONS 1
    #define Z_PROBE_HEIGHT 22.1
    #define Z_PROBE_START_SCRIPT "G1 X50 Y50 F18000; \n M340 P0 S580; \n"
    #define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1500; \n G1 X0 Y0 F18000; \n"
    #define Z_PROBE_REQUIRES_HEATING 0
    #define Z_PROBE_MIN_TEMPERATURE 150

    So that my Z probe is also the Z-Min endstop (it wasn't before). Now, to "home" the Z axis, I have to manually put the head over the bed, move the bed out of the way, swing the servo down, and then send a G28 Z. This causes the bed to move up until it hits the switch, then back off 5mm, but then it drives up, ignoring the switch completely until I hit the E-Stop to keep it from breaking my servo arm. 

    And then G32 does the same thing it did before. Goes down to Z=35, then comes back up to Z=20, so that when the carriage moves over the bed, the probe hits the edge. 

    I can't seem to figure out what I'm doing wrong here. I appreciate the assistance, also. 
  • I'm confused. What is the difference between z min endstop/e stop and z probe? You said z min= z probe so what is e stop and what is your homing direction?

    When you say bed goes up does that mean extrduer goes towards bed and you have a movable bed instead moving extruder up/down?

    Sounds like you are z homing with servo controlled z probe, whcih is normally not wanted/correctly possible. You need to home with zrpobe above 0,0 or you get wrong results. And as you already mentions, homing does not run probe start/end scripts. In such cases you should really use z max homing.
  • Thanks. I went back to the same configuration I have been using with 92.6, without trying to use distortion probing; just three-point probing for bed slightly unlevel again. I have a dual-stepper Z drive and when the power is turned off they will drift unevenly; they stay within ~.5mm of one another, but that means across 300mm, I lose bed adhesion or crash the nozzle. That's why I need z-probe based bed leveling. 

    There isn't a lot of step-by-step on how to set up z-probe for a non-delta printer. I have a moving Z axis that moves down away from the nozzle. I didn't set it up for z max homing because it takes a LOOOONG time for the bed to go down 325mm (build volume is 325^3). So the first time I set up z-probing I put in a Z-MIN stop and configured the z probe on another pin. This worked on 6.2 just fine. 

    Right now I'm back to using 3-point probing with the script in the build like you mentioned; it's working fairly well, but I see why you say I need to use z-max homing now. Thanks for all your help. 


Sign In or Register to comment.