Z probe problem Tronxy X3

Hello,
I have upgraded my Tronxy X3 with an inductive sensor. Currently I'm running repetier 0.92.9.
My sensor is mounted 40mm left to the nozzle. Open and close state are sensed correctly with G31 command. So the sensor works correctly.
FEATURE_Z_PROBE is enabled. When I now home X and Y and then home Z the printhead doesn't move in X and Y direction. So the probe is not over the bed and of course can't detect it and the nozzle runs into the Bed.
What parameters do I have to adjust?
Here is the part of my configuration:
// #################### Z-Probing #####################

#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1 // war 0
#define Z_PROBE_BED_DISTANCE 10
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
#define Z_PROBE_PULLUP 0
#define Z_PROBE_ON_HIGH 1
#define Z_PROBE_X_OFFSET -40
#define Z_PROBE_Y_OFFSET 5
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 2
#define Z_PROBE_XY_SPEED 100
#define Z_PROBE_SWITCHING_DISTANCE 1
#define Z_PROBE_REPETITIONS 1
#define Z_PROBE_HEIGHT 0
#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 0
#define Z_PROBE_Y1 -50
#define Z_PROBE_X2 -50
#define Z_PROBE_Y2 50
#define Z_PROBE_X3 50
#define Z_PROBE_Y3 50
#define BED_LEVELING_METHOD 0
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 5
#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

Comments

  • I would recoment swithing to DEV version as many improvments have been made with reference to ABL.

    You need to select HOMING_ORDER_ZXYTZ  ;(z up x y pre heat then Z) this lets you specify the X Y coords for homing Z


    #define HOMING_ORDER HOME_ORDER_ZXYTZ
    #define ZHOME_PRE_RAISE 2
    #define ZHOME_PRE_RAISE_DISTANCE 5
    #define RAISE_Z_ON_TOOLCHANGE 0
    #define ZHOME_MIN_TEMPERATURE 0
    #define ZHOME_HEAT_ALL 1
    #define ZHOME_HEAT_HEIGHT 20
    #define ZHOME_X_POS 100
    #define ZHOME_Y_POS 100

  • If I understand right that means that I need a Z max Endstop?
    Currently I have a Mali board which didn't support that. So is it possible with only the Z probe?
  • You do not need a z max. z probe can act as z min endstop. What MarintH told you are the settings required for this solution.
  • Ok. And how does the sat code look like for this solution ?
  • What martin wrote and set z probe pin and z min enststop pin to same pin so firmware knows this special case. Thats all.
  • So that means that it only works in the dev. version. Unfortunately I can't compile that version because of memory restrictions on my melzi board  !? :(
  • You need to deselect some features to reduce flash usage. LCD display and different langagues are the main source for high flash usage. So reduce lcd languages to 1 or remove it completely. Or check some minor features depending on how much ram you need to spare.
  • As I am very limited with the melzi board I decided to buy a RAMPS 1.4 board with a smart graphics LCD. So as soon as it is running I will test the new version and your proposals. Thank you...
  • Repetier said:
    You need to deselect some features to reduce flash usage. LCD display and different langagues are the main source for high flash usage. So reduce lcd languages to 1 or remove it completely. Or check some minor features depending on how much ram you need to spare.
    And how is this done? i would also like to use the dev version, but it does not fit. how do i for example remove the SD card functions?
  • Ok. Meanwhile I have my RAMPS board connected and running with the dev. Firmware. So far so good.
    But how do I initialize now my printer? What commands do I have to send before printing?
    Does MIN_HARDWARE_ENDSTOP_Z to be true or false?
    I have MIN_HARDWARE_ENDSTOP_Z on false. When I do a G28 it moves around 15mm up, then homes X and Y, then the head moves to ZHOME_X_POS =141 and ZHOME_Y_POS =100 but does nothing in Z!?. Then it moves to X0 Y0 Z0 where Z0 is the position where I started the homing. Is that correct?

    After the G28 I move Z to 5mm and then I run G32 S2. In the log I can see that it stores the bed values. But when I move to the four bed corners at a height of 0,2mm the distance between bed and nozzle is not constant. I thought that after a G32 there should be the same distance all over the bed? It differs at around 0,15mm. So What went wrong?

    Here my new settings:
    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define DISABLE_X 0
    #define DISABLE_Y 0
    #define DISABLE_Z 0
    #define DISABLE_E 0
    #define INVERT_X_DIR 0
    #define INVERT_Y_DIR 0
    #define INVERT_Z_DIR 1
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1
    #define X_MAX_LENGTH 225
    #define Y_MAX_LENGTH 230
    #define Z_MAX_LENGTH 318
    #define X_MIN_POS -21
    #define Y_MIN_POS -40
    #define Z_MIN_POS 0
    #define Z2_MINMAX_PIN -1

    #define DISTORTION_CORRECTION 0

    #define HOMING_FEEDRATE_X 70
    #define HOMING_FEEDRATE_Y 70
    #define HOMING_FEEDRATE_Z 6
    #define HOMING_ORDER HOME_ORDER_ZXYTZ
    #define ZHOME_PRE_RAISE 2
    #define ZHOME_PRE_RAISE_DISTANCE 5
    #define RAISE_Z_ON_TOOLCHANGE 0
    #define ZHOME_MIN_TEMPERATURE 0
    #define ZHOME_HEAT_ALL 1
    #define ZHOME_HEAT_HEIGHT 20
    #define ZHOME_X_POS 141
    #define ZHOME_Y_POS 100
    #define ENABLE_BACKLASH_COMPENSATION 1

    #define Z_PROBE_Z_OFFSET 0
    #define Z_PROBE_Z_OFFSET_MODE 0
    #define UI_BED_COATING 1
    #define FEATURE_Z_PROBE 1
    #define EXTRUDER_IS_Z_PROBE 0
    #define Z_PROBE_BED_DISTANCE 10
    #define Z_PROBE_PIN ORIG_Z_MIN_PIN
    #define Z_PROBE_PULLUP 0
    #define Z_PROBE_ON_HIGH 1
    #define Z_PROBE_X_OFFSET -40
    #define Z_PROBE_Y_OFFSET -5
    #define Z_PROBE_WAIT_BEFORE_TEST 0
    #define Z_PROBE_SPEED 3
    #define Z_PROBE_XY_SPEED 100
    #define Z_PROBE_SWITCHING_DISTANCE 2
    #define Z_PROBE_REPETITIONS 2
    #define Z_PROBE_HEIGHT 1.00
    #define Z_PROBE_START_SCRIPT ""
    #define Z_PROBE_FINISHED_SCRIPT ""
    #define Z_PROBE_RUN_AFTER_EVERY_PROBE ""
    #define Z_PROBE_REQUIRES_HEATING 0
    #define Z_PROBE_MIN_TEMPERATURE 150
    #define FEATURE_AUTOLEVEL 1
    #define FEATURE_SOFTWARE_LEVELING 0
    #define Z_PROBE_X1 20
    #define Z_PROBE_Y1 20
    #define Z_PROBE_X2 180
    #define Z_PROBE_Y2 20
    #define Z_PROBE_X3 100
    #define Z_PROBE_Y3 180
    #define BED_LEVELING_METHOD 0
    #define BED_CORRECTION_METHOD 0
    #define BED_LEVELING_GRID_SIZE 5
    #define BED_LEVELING_REPETITIONS 5




  • Yes, MIN_HARDWARE_ENDSTOP_Z true is required. As you describe it the z probe part was missing in your homing sequence, so I guess it is from having no z min endstop defined. Also check M119 does show z min and same signal as z probe.
  • Ok. With MIN_HARDWARE_ENDSTOP_Z true it works better. One problem I have now is that when the printhead is in the X endstop and I try to home it doesn't move enough to get the sensor positioned over the bed and the Z-Axis crashes. Currently I home X and Y, move the sensor over the bed and then home Z. But then it homes X and Y again. So that's not a bit isue, it only costs some time.

    But the way it should work, what I expect, should be this procedure:

    Sending G28:
    Move Z up an view mm, then home X and Y then move the sensor to the center of the bed, then Z probe.

    So the start code could be only G28; G32.
    Is that possible or do I get something wrong?
  • Use homing order X Y preheat then Z, this lets you set te X and Y coords for homing Z
  • My problem is that when the printhead is somewhere near the home position and I send G28 it only moves some mm in X and then tries to probe Z but the sensor is not over the bed and so the head crashes into the bed!
  • OK. Now I have found my error. My homing order was set to ZXYTZ. I thouhgt it was already set to XYTZ. I will give it a test.
  • Btmerz, I have a TronXY X3 3D printer with the Melzi V2.05 controller board. I have purchased a few bed leveling devices that I have seen on YouTube being used with this printer. I need to upgrading the firmware to 0.92.9 but have run into MANY problems in doing so. NOTE: This is not my world! Is there a HEX file somewhere out there that I can use to upload to my Melzi V2.05 board? Do I need to set all these processor flag that I read about? Do I need to install a boot-loader. I have those cheap ISP programmers that use USBasp and some of these can read the board - using AVRDude GUI, but NOT with Arduino IDE.  Note again: I do not really need to do this and am not going to purchase another controller board.. I will live with what I have.. but if there is a easy way to get this upgraded I would like to do it. So the question for you is 1) do you think V.92.9 with work in a Melzi V2.05 controller board for bed leveling and is there a place I can get the HEX file to upload to my board. Thanks Richard 
Sign In or Register to comment.