X/Y probe offset not used when bed leveling

I just rebuilt my carriage and put a BLTouch on the back.  I've used BLTouch on my other printer and as far as I know it works great.  On this printer, since it is in the rear of the carriage, it is set to 60 mm Y offset but when I tell it to probe starting at Y10 mm it puts the nozzle at Y 10mm instead of the prbe at Y 10mm.  When it gets to the back of the bed and tries to probe Y 280 mm the BLTouch is 40 mm off the back of the bed.  I've spent a long time searching the forums and cannot find anything that helps.  Everything else on the printer works perfect!

Here is my config.  Can someone help me please?

#define NUM_EXTRUDER 1
#define MOTHERBOARD 33
#include "pins.h"

#undef FAN_PIN
#define FAN_PIN 9
#undef FAN_BOARD_PIN
#define FAN_BOARD_PIN -1
#define BOARD_FAN_SPEED 255
#define BOARD_FAN_MIN_SPEED 0
#define FAN_THERMO_PIN -1
#define FAN_THERMO_MIN_PWM 128
#define FAN_THERMO_MAX_PWM 255
#define FAN_THERMO_MIN_TEMP 45
#define FAN_THERMO_MAX_TEMP 60
#define FAN_THERMO_THERMISTOR_PIN -1
#define FAN_THERMO_THERMISTOR_TYPE 1
#undef X_MAX_PIN
#define X_MAX_PIN -1
#undef Y_MAX_PIN
#define Y_MAX_PIN -1
#undef Z_MAX_PIN
#define Z_MAX_PIN -1

//#define EXTERNALSERIAL  use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
// Uncomment the following line if you are using Arduino compatible firmware made for Arduino version earlier then 1.0
// If it is incompatible you will get compiler errors about write functions not being compatible!
//#define COMPAT_PRE1
#define BLUETOOTH_SERIAL  -1
#define BLUETOOTH_BAUD  115200
#define MIXING_EXTRUDER 0

#define DRIVE_SYSTEM 0
#define XAXIS_STEPS_PER_MM 80
#define YAXIS_STEPS_PER_MM 80
#define ZAXIS_STEPS_PER_MM 400
#define EXTRUDER_FAN_COOL_TEMP 50
#define PDM_FOR_EXTRUDER 0
#define PDM_FOR_COOLER 0
#define DECOUPLING_TEST_MAX_HOLD_VARIANCE 20
#define DECOUPLING_TEST_MIN_TEMP_RISE 1
#define KILL_IF_SENSOR_DEFECT 0
#define RETRACT_ON_PAUSE 5
#define PAUSE_START_COMMANDS ""
#define PAUSE_END_COMMANDS ""
#define SHARED_EXTRUDER_HEATER 1
#define EXT0_X_OFFSET 0
#define EXT0_Y_OFFSET 0
#define EXT0_Z_OFFSET 0
#define EXT0_STEPS_PER_MM 416.98
#define EXT0_TEMPSENSOR_TYPE 14
#define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
#define EXT0_HEATER_PIN HEATER_0_PIN
#define EXT0_STEP_PIN ORIG_E0_STEP_PIN
#define EXT0_DIR_PIN ORIG_E0_DIR_PIN
#define EXT0_INVERSE 1
#define EXT0_ENABLE_PIN ORIG_E0_ENABLE_PIN
#define EXT0_ENABLE_ON 0
#define EXT0_MIRROR_STEPPER 0
#define EXT0_STEP2_PIN ORIG_E0_STEP_PIN
#define EXT0_DIR2_PIN ORIG_E0_DIR_PIN
#define EXT0_INVERSE2 0
#define EXT0_ENABLE2_PIN ORIG_E0_ENABLE_PIN
#define EXT0_MAX_FEEDRATE 50
#define EXT0_MAX_START_FEEDRATE 20
#define EXT0_MAX_ACCELERATION 5000
#define EXT0_HEAT_MANAGER 1
#define EXT0_PREHEAT_TEMP 185
#define EXT0_WATCHPERIOD 1
#define EXT0_PID_INTEGRAL_DRIVE_MAX 230
#define EXT0_PID_INTEGRAL_DRIVE_MIN 40
#define EXT0_PID_PGAIN_OR_DEAD_TIME 19.87
#define EXT0_PID_I 2.35
#define EXT0_PID_D 42.00
#define EXT0_PID_MAX 255
#define EXT0_ADVANCE_K 0
#define EXT0_ADVANCE_L 0
#define EXT0_ADVANCE_BACKLASH_STEPS 0
#define EXT0_WAIT_RETRACT_TEMP 150
#define EXT0_WAIT_RETRACT_UNITS 0
#define EXT0_SELECT_COMMANDS ""
#define EXT0_DESELECT_COMMANDS ""
#define EXT0_EXTRUDER_COOLER_PIN -1
#define EXT0_EXTRUDER_COOLER_SPEED 255
#define EXT0_DECOUPLE_TEST_PERIOD 12000
#define EXT0_JAM_PIN -1
#define EXT0_JAM_PULLUP 0

#define FEATURE_RETRACTION 0
#define AUTORETRACT_ENABLED 0
#define RETRACTION_LENGTH 5
#define RETRACTION_LONG_LENGTH 8
#define RETRACTION_SPEED 10
#define RETRACTION_Z_LIFT 0
#define RETRACTION_UNDO_EXTRA_LENGTH 0
#define RETRACTION_UNDO_EXTRA_LONG_LENGTH 0
#define RETRACTION_UNDO_SPEED 15
#define FILAMENTCHANGE_X_POS 0
#define FILAMENTCHANGE_Y_POS 0
#define FILAMENTCHANGE_Z_ADD  2
#define FILAMENTCHANGE_REHOME 1
#define FILAMENTCHANGE_SHORTRETRACT 5
#define FILAMENTCHANGE_LONGRETRACT 50
#define JAM_METHOD 1
#define JAM_STEPS 220
#define JAM_SLOWDOWN_STEPS 320
#define JAM_SLOWDOWN_TO 70
#define JAM_ERROR_STEPS 500
#define JAM_MIN_STEPS 10
#define JAM_ACTION 1

#define RETRACT_DURING_HEATUP true
#define PID_CONTROL_RANGE 20
#define SKIP_M109_IF_WITHIN 2
#define SCALE_PID_TO_MAX 0
#define TEMP_HYSTERESIS 0
#define EXTRUDE_MAXLENGTH 160
#define NUM_TEMPS_USERTHERMISTOR0 0
#define USER_THERMISTORTABLE0 {}
#define NUM_TEMPS_USERTHERMISTOR1 0
#define USER_THERMISTORTABLE1 {}
#define NUM_TEMPS_USERTHERMISTOR2 0
#define USER_THERMISTORTABLE2 {}
#define GENERIC_THERM_VREF 5
#define GENERIC_THERM_NUM_ENTRIES 33
#define HEATER_PWM_SPEED 0
#define COOLER_PWM_SPEED 0

// ############# Heated bed configuration ########################

#define HAVE_HEATED_BED 1
#define HEATED_BED_PREHEAT_TEMP 50
#define HEATED_BED_MAX_TEMP 60
#define SKIP_M190_IF_WITHIN 2
#define HEATED_BED_SENSOR_TYPE 1
#define HEATED_BED_SENSOR_PIN TEMP_1_PIN
#define HEATED_BED_HEATER_PIN HEATER_1_PIN
#define HEATED_BED_SET_INTERVAL 5000
#define HEATED_BED_HEAT_MANAGER 1
#define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255
#define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
#define HEATED_BED_PID_PGAIN_OR_DEAD_TIME   329.73
#define HEATED_BED_PID_IGAIN   66.42
#define HEATED_BED_PID_DGAIN 409.23
#define HEATED_BED_PID_MAX 255
#define HEATED_BED_DECOUPLE_TEST_PERIOD 300000
#define MIN_EXTRUDER_TEMP 150
#define MAXTEMP 250
#define MIN_DEFECT_TEMPERATURE -10
#define MAX_DEFECT_TEMPERATURE 290
#define MILLISECONDS_PREHEAT_TIME 30000

// ################ Endstop configuration #####################

#define MULTI_ZENDSTOP_HOMING 0
#define ENDSTOP_PULLUP_X_MIN true
#define ENDSTOP_X_MIN_INVERTING true
#define MIN_HARDWARE_ENDSTOP_X true
#define ENDSTOP_PULLUP_Y_MIN true
#define ENDSTOP_Y_MIN_INVERTING true
#define MIN_HARDWARE_ENDSTOP_Y true
#define ENDSTOP_PULLUP_Z_MIN false
#define ENDSTOP_Z_MIN_INVERTING false
#define MIN_HARDWARE_ENDSTOP_Z true
#define ENDSTOP_PULLUP_Z2_MINMAX false
#define ENDSTOP_Z2_MINMAX_INVERTING false
#define MINMAX_HARDWARE_ENDSTOP_Z2 false
#define ENDSTOP_PULLUP_X_MAX true
#define ENDSTOP_X_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_X false
#define ENDSTOP_PULLUP_Y_MAX true
#define ENDSTOP_Y_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_Y false
#define ENDSTOP_PULLUP_Z_MAX true
#define ENDSTOP_Z_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_Z false
#define ENDSTOP_PULLUP_X2_MIN true
#define ENDSTOP_PULLUP_Y2_MIN true
#define ENDSTOP_PULLUP_Z2_MINMAX true
#define ENDSTOP_PULLUP_X2_MAX true
#define ENDSTOP_PULLUP_Y2_MAX true
#define ENDSTOP_X2_MIN_INVERTING false
#define ENDSTOP_Y2_MIN_INVERTING false
#define ENDSTOP_X2_MAX_INVERTING false
#define ENDSTOP_Y2_MAX_INVERTING false
#define MIN_HARDWARE_ENDSTOP_X2 false
#define MIN_HARDWARE_ENDSTOP_Y2 false
#define MAX_HARDWARE_ENDSTOP_X2 false
#define MAX_HARDWARE_ENDSTOP_Y2 false
#define X2_MIN_PIN -1
#define X2_MAX_PIN -1
#define Y2_MIN_PIN -1
#define Y2_MAX_PIN -1
#define Z2_MINMAX_PIN -1



#define max_software_endstop_r true

#define min_software_endstop_x false
#define min_software_endstop_y false
#define min_software_endstop_z false
#define max_software_endstop_x true
#define max_software_endstop_y true
#define max_software_endstop_z true
#define DOOR_PIN -1
#define DOOR_PULLUP 1
#define DOOR_INVERTING 0
#define ENDSTOP_X_BACK_MOVE 5
#define ENDSTOP_Y_BACK_MOVE 5
#define ENDSTOP_Z_BACK_MOVE 2
#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_X_BACK_ON_HOME 19
#define ENDSTOP_Y_BACK_ON_HOME 25
#define ENDSTOP_Z_BACK_ON_HOME 0
#define ALWAYS_CHECK_ENDSTOPS 0
#define MOVE_X_WHEN_HOMED 0
#define MOVE_Y_WHEN_HOMED 0
#define MOVE_Z_WHEN_HOMED 0

// ################# XYZ movements ###################

#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 PREVENT_Z_DISABLE_ON_STEPPER_TIMEOUT
#define INVERT_X_DIR 0
#define INVERT_X2_DIR 0
#define INVERT_Y_DIR 0
#define INVERT_Y2_DIR 0
#define INVERT_Z_DIR 1
#define INVERT_Z2_DIR 1
#define INVERT_Z3_DIR 0
#define INVERT_Z4_DIR 0
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define X_MAX_LENGTH 300
#define Y_MAX_LENGTH 300
#define Z_MAX_LENGTH 300
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define PARK_POSITION_X 10
#define PARK_POSITION_Y 5
#define PARK_POSITION_Z_RAISE 5


#define DISTORTION_CORRECTION 0
#define DISTORTION_CORRECTION_POINTS 5
#define DISTORTION_LIMIT_TO 2
#define DISTORTION_CORRECTION_R 100
#define DISTORTION_PERMANENT 1
#define DISTORTION_UPDATE_FREQUENCY 15
#define DISTORTION_START_DEGRADE 0.5
#define DISTORTION_END_HEIGHT 1
#define DISTORTION_EXTRAPOLATE_CORNERS 0
#define DISTORTION_XMIN 10
#define DISTORTION_YMIN 10
#define DISTORTION_XMAX 190
#define DISTORTION_YMAX 190

// ##########################################################################################
// ##                           Movement settings                                          ##
// ##########################################################################################

#define FEATURE_BABYSTEPPING 1
#define BABYSTEP_MULTIPLICATOR 1

#define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
#define DELTA_SEGMENTS_PER_SECOND_MOVE 70 // Less accurate setting for other moves
#define EXACT_DELTA_MOVES 1

// Delta settings
#define DELTA_HOME_ON_POWER 0

#define DELTASEGMENTS_PER_PRINTLINE 20
#define STEPPER_INACTIVE_TIME 360L
#define MAX_INACTIVE_TIME 0L
#define MAX_FEEDRATE_X 100
#define MAX_FEEDRATE_Y 100
#define MAX_FEEDRATE_Z 3
#define HOMING_FEEDRATE_X 80
#define HOMING_FEEDRATE_Y 80
#define HOMING_FEEDRATE_Z 3
#define HOMING_ORDER HOME_ORDER_XYTZ
#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 150
#define ZHOME_Y_POS 150
#define ENABLE_BACKLASH_COMPENSATION 0
#define X_BACKLASH 0
#define Y_BACKLASH 0
#define Z_BACKLASH 0
#define RAMP_ACCELERATION 1
#define STEPPER_HIGH_DELAY 0
#define DIRECTION_DELAY 0
#define STEP_DOUBLER_FREQUENCY 12000
#define ALLOW_QUADSTEPPING 1
#define DOUBLE_STEP_DELAY 0 // time in microseconds
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 150
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 150
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 50
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 150
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 150
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 50
#define INTERPOLATE_ACCELERATION_WITH_Z 0
#define ACCELERATION_FACTOR_TOP 100
#define MAX_JERK 8
#define MAX_ZJERK 0.3
#define PRINTLINE_CACHE_SIZE 16
#define MOVE_CACHE_LOW 10
#define LOW_TICKS_PER_MOVE 250000
#define EXTRUDER_SWITCH_XY_SPEED 100
#define DUAL_X_AXIS 0
#define DUAL_X_RESOLUTION 0
#define X2AXIS_STEPS_PER_MM 100
#define FEATURE_TWO_XSTEPPER 0
#define X2_STEP_PIN   ORIG_E1_STEP_PIN
#define X2_DIR_PIN    ORIG_E1_DIR_PIN
#define X2_ENABLE_PIN ORIG_E1_ENABLE_PIN
#define FEATURE_TWO_YSTEPPER 0
#define Y2_STEP_PIN   ORIG_E1_STEP_PIN
#define Y2_DIR_PIN    ORIG_E1_DIR_PIN
#define Y2_ENABLE_PIN ORIG_E1_ENABLE_PIN
#define FEATURE_TWO_ZSTEPPER 1
#define Z2_STEP_PIN   ORIG_E1_STEP_PIN
#define Z2_DIR_PIN    ORIG_E1_DIR_PIN
#define Z2_ENABLE_PIN ORIG_E1_ENABLE_PIN
#define FEATURE_THREE_ZSTEPPER 0
#define Z3_STEP_PIN   ORIG_E2_STEP_PIN
#define Z3_DIR_PIN    ORIG_E2_DIR_PIN
#define Z3_ENABLE_PIN ORIG_E2_ENABLE_PIN
#define FEATURE_FOUR_ZSTEPPER 0
#define Z4_STEP_PIN   ORIG_E3_STEP_PIN
#define Z4_DIR_PIN    ORIG_E3_DIR_PIN
#define Z4_ENABLE_PIN ORIG_E3_ENABLE_PIN
#define FEATURE_DITTO_PRINTING 0
#define USE_ADVANCE 0
#define ENABLE_QUADRATIC_ADVANCE 0


// ################# Misc. settings ##################

#define BAUDRATE 115200
#define ENABLE_POWER_ON_STARTUP 0
#define POWER_INVERTING 0
#define AUTOMATIC_POWERUP 0
#define KILL_METHOD 1
#define ACK_WITH_LINENUMBER 1
#define KEEP_ALIVE_INTERVAL 2000
#define WAITING_IDENTIFIER "wait"
#define ECHO_ON_EXECUTE 1
#define EEPROM_MODE 1
#undef PS_ON_PIN
#define PS_ON_PIN -1
#define JSON_OUTPUT 0

/* ======== Servos =======
Control the servos with
M340 P<servoId> S<pulseInUS>   / ServoID = 0..3  pulseInUs = 500..2500
Servos are controlled by a pulse width normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
WARNING: Servos can draw a considerable amount of current. Make sure your system can handle this or you may risk your hardware!
*/
#define FEATURE_SERVO 1
#define SERVO0_PIN 11
#define SERVO1_PIN 6
#define SERVO2_PIN 5
#define SERVO3_PIN 4
#define SERVO0_NEUTRAL_POS  -1
#define SERVO1_NEUTRAL_POS  -1
#define SERVO2_NEUTRAL_POS  -1
#define SERVO3_NEUTRAL_POS  -1
#define UI_SERVO_CONTROL 0
#define FAN_KICKSTART_TIME  200
#define MAX_FAN_PWM 255

#define FEATURE_WATCHDOG 1

// #################### Z-Probing #####################

#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 0
#define FEATURE_Z_PROBE 1
#define EXTRUDER_IS_Z_PROBE 1
#define Z_PROBE_DISABLE_HEATERS 0
#define Z_PROBE_BED_DISTANCE 0
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
#define Z_PROBE_PULLUP 1
#define Z_PROBE_ON_HIGH 1
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 60
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 5
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 5
#define Z_PROBE_REPETITIONS 2
#define Z_PROBE_USE_MEDIAN 0
#define Z_PROBE_HEIGHT 0.20
#define Z_PROBE_DELAY 0
#define Z_PROBE_START_SCRIPT "M340 P0 S650"
#define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1475"
#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 1
#define Z_PROBE_X1 10
#define Z_PROBE_Y1 10
#define Z_PROBE_X2 290
#define Z_PROBE_Y2 10
#define Z_PROBE_X3 10
#define Z_PROBE_Y3 230
#define BED_LEVELING_METHOD 1
#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

#ifndef SDSUPPORT  // Some boards have sd support on board. These define the values already in pins.h
#define SDSUPPORT 1
#undef SDCARDDETECT
#define SDCARDDETECT -1
#undef SDCARDDETECTINVERTED
#define SDCARDDETECTINVERTED 0
#define SD_EXTENDED_DIR 1 /** Show extended directory including file length. Don't use this with Pronterface! */
#define SD_RUN_ON_STOP ""
#define SD_STOP_HEATER_AND_MOTORS_ON_STOP 1
#define ARC_SUPPORT 1
#define FEATURE_MEMORY_POSITION 1
#define FEATURE_CHECKSUM_FORCED 0
#define FEATURE_FAN_CONTROL 1
#define FEATURE_FAN2_CONTROL 0
#define FEATURE_CONTROLLER 11
#define ADC_KEYPAD_PIN -1
#define LANGUAGE_EN_ACTIVE 1
#define LANGUAGE_DE_ACTIVE 0
#define LANGUAGE_NL_ACTIVE 0
#define LANGUAGE_PT_ACTIVE 0
#define LANGUAGE_IT_ACTIVE 0
#define LANGUAGE_ES_ACTIVE 0
#define LANGUAGE_FI_ACTIVE 0
#define LANGUAGE_SE_ACTIVE 0
#define LANGUAGE_FR_ACTIVE 0
#define LANGUAGE_CZ_ACTIVE 0
#define LANGUAGE_PL_ACTIVE 0
#define LANGUAGE_TR_ACTIVE 0
#define UI_PRINTER_NAME "AM8"
#define UI_PRINTER_COMPANY ""
#define UI_PAGES_DURATION 4000
#define UI_SPEEDDEPENDENT_POSITIONING 0
#define UI_DISABLE_AUTO_PAGESWITCH 1
#define UI_AUTORETURN_TO_MENU_AFTER 30000
#define FEATURE_UI_KEYS 0
#define UI_ENCODER_SPEED 2
#define UI_REVERSE_ENCODER 0
#define UI_KEY_BOUNCETIME 10
#define UI_KEY_FIRST_REPEAT 500
#define UI_KEY_REDUCE_REPEAT 50
#define UI_KEY_MIN_REPEAT 50
#define FEATURE_BEEPER 0
#define CASE_LIGHTS_PIN -1
#define CASE_LIGHT_DEFAULT_ON 1
#define UI_START_SCREEN_DELAY 1000
#define UI_DYNAMIC_ENCODER_SPEED 1
        /**
Beeper sound definitions for short beeps during key actions
and longer beeps for important actions.
Parameter is delay in microseconds and the secons is the number of repetitions.
Values must be in range 1..255
*/
#define BEEPER_SHORT_SEQUENCE 2,2
#define BEEPER_LONG_SEQUENCE 8,8
#define UI_SET_MIN_HEATED_BED_TEMP  30
#define UI_SET_MAX_HEATED_BED_TEMP 80
#define UI_SET_MIN_EXTRUDER_TEMP   150
#define UI_SET_MAX_EXTRUDER_TEMP   250
#define UI_SET_EXTRUDER_FEEDRATE 2
#define UI_SET_EXTRUDER_RETRACT_DISTANCE 3


#define NUM_MOTOR_DRIVERS 0

«1

Comments

  • Please check in eeprom what value you have. Guess it is not the same as in configuration.h a it never updated eeprom on upload.
  • I reset EEPROM every time I upload firmware.  The only thing I ever change in EEPROM is PID values and Z-probe height and the next time I upload a firmware I put those same values in the configuration.h file and reset firmware when I upload.  I just checked and here are the EEPROM values.

    Z-probe offset x [mm] = 0
    Z-probe offset y [mm] = 60

  • With #define Z_PROBE_Y_OFFSET 60

    i would have thought trying to probe at Y 10 would be an illegal position as you are trying to get the nozzle to go to
    y-50
     
  • Good point. You need a homing order with preheat so you can enter also a homing position for z that can work. You can leave temperature at 0 so no preheat is necessary, but the position is required. Hope it then also uses the offset which is then possible.
  • I already have homing order and temp set as I home in the middle of the bed.  That does not even home where the probe is in the middle of the bed, it homes where the nozzle is in the middle of the bed.

    I understand that y-50 would be illegal if I do not allow y to go below zero.  But why when I tell it to probe a 7x7 grid, y max being 280, does it send the probe 40 mm off the back of the bed instead of probing at Y 280?
  • When you go to middle and run a single probe using G30 does it apply the offset?

    Deploy logic is not the smartest in V1 firmware. It must succeed at the point you do it or it will fail. V2 does move here to apply it correctly. But it won't run on 8 bit controller for the moment.

  • When I told it to home Z it homed X and Y then put the nozzle right at 150,150 and dropped the probe, but the probe was at Y 210.
  • I understand that part. But the question was if G30 would do it correctly.
  • sorry, I misunderstood.  I'll test that now.  Thanks!
  • When I home all (G28) it homes X then Y then goes to the middle and homes Z with the nozzle at X 150 Y 150 (not the probe) then goes to X 0, Y 0, Z 0.  If I then do G30 it just homes Z where it currently is and does not move the X or Y axis.

    This is the log after G30 while the probe is at X 0 Y 60:
    Z-probe:1.567 X:0.00 Y:0.00
  • Trying something else that MartinH made me think of.  If Y min is 0 and the probe offset is Y 60 then it would never reach that and could possibly negate all probe offset settings.  My bed will go to Y -30 so I set that in firmware and auto bed leveling to start at Y 35 as to not hit the minimum then uploaded the new hex file with the EEPROM reset.  I'll post an update shortly.
  • Now I have some interesting data!  That seemed to help, but when I use G28 instead of the nozzle being at Y 90 and the probe at Y 150 where firmware said it should be it did the opposite and put the nozzle at 210 where the probe used to be.  I set my Y offset to -60 and tried the same thing but it probed the exact same place.

    I tried auto leveling and instead of the nozzle going to Y -25 for the probe to check Y 35 where I would expect, the nozzle went to Y 95 and the probe went to Y 155.  So it is using the offset now, but the opposite direction than I want.  I set the offset according to the image in the firmware setup web site with Y 60 being 60 mm behind the nozzle.  I have also tried with the offset being Y -60.  Both had the exact same result with the bed going forward instead of back.
  • Ok after a look into the sources the z home function homeZAxis has this part for activating offset:

    #if Z_HOME_DIR < 0 && Z_PROBE_PIN == Z_MIN_PIN && FEATURE_Z_PROBE
    if (!Printer::startProbing(true)) {
    return;
    }

    So I hope your conditions are met with this. Z_HOME_DIR < 0 && Z_PROBE_PIN == Z_MIN_PIN && FEATURE_Z_PROBE


    startProbing activates the offset. If this is not possible is writes into log:
    Activating z-probe would lead to forbidden xy position: ....

    If you don't see it it sets offsets like:
    Printer::offsetX = -ZPOffsetX;
    Printer::offsetY = -ZPOffsetY;
    Printer::offsetZ = 0;

    so nothing that takes only absolute value of offset.

    >This is the log after G30 while the probe is at X 0 Y 60:
    >Z-probe:1.567 X:0.00 Y:0.00

    G30 reports 0/0 as position which is strange.
    Please try
    G1 X100 Y100 Z20 F6000
    G30

    and see if it activates and in which direction. Ignore any homing behaviour. Paste log with commands and output and describe it it moves. Offset 60 or -60 should make it behave differently. I used 100/100 because there all moves are possible. Always testing at edges where problems can occur is not helpful analysing the offsets problem.

    Also check log when you send G28 to see for any messages there.

    This is all for version 1.0.4 or newer. So hope you use a recent version.
  • I have version 1.0.3.  Guess I will be updating today  :)

    I'll keep you posted.  Thanks!
  • I just updated my firmware and it is still sending the nozzle back 60mm instead of forward 60 mm.  The offset is being acknowledged now, but in the wrong direction.

    Here is me new configuration.h file.  Can you identify why my offset is backward?

    #ifndef CONFIGURATION_H
    #define CONFIGURATION_H

    /**************** READ FIRST ************************

       This configuration file was created with the configuration tool. For that
       reason, it does not contain the same informations as the original Configuration.h file.
       It misses the comments and unused parts. Open this file file in the config tool
       to see and change the data. You can also upload it to newer/older versions. The system
       will silently add new options, so compilation continues to work.

       This file is optimized for version 1.0.4dev

       If you are in doubt which named functions use which pins on your board, please check the
       pins.h for the used name->pin assignments and your board documentation to verify it is
       as you expect.

    */

    #define NUM_EXTRUDER 1
    #define MOTHERBOARD 33
    #include "pins.h"

    // ################## EDIT THESE SETTINGS MANUALLY ################

    // ################ END MANUAL SETTINGS ##########################

    #define HOST_RESCUE 1
    #undef FAN_PIN
    #define FAN_PIN 9
    #undef FAN_BOARD_PIN
    #define FAN_BOARD_PIN -1
    #define BOARD_FAN_SPEED 255
    #define BOARD_FAN_MIN_SPEED 0
    #define FAN_THERMO_PIN -1
    #define FAN_THERMO_MIN_PWM 128
    #define FAN_THERMO_MAX_PWM 255
    #define FAN_THERMO_MIN_TEMP 45
    #define FAN_THERMO_MAX_TEMP 60
    #define FAN_THERMO_THERMISTOR_PIN -1
    #define FAN_THERMO_THERMISTOR_TYPE 1

    //#define EXTERNALSERIAL  use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
    // Uncomment the following line if you are using Arduino compatible firmware made for Arduino version earlier then 1.0
    // If it is incompatible you will get compiler errors about write functions not being compatible!
    //#define COMPAT_PRE1
    #define BLUETOOTH_SERIAL  -1
    #define BLUETOOTH_BAUD  115200
    #define MIXING_EXTRUDER 0

    #define DRIVE_SYSTEM 0
    #define XAXIS_STEPS_PER_MM 80
    #define YAXIS_STEPS_PER_MM 80
    #define ZAXIS_STEPS_PER_MM 400
    #define EXTRUDER_FAN_COOL_TEMP 50
    #define PDM_FOR_EXTRUDER 0
    #define PDM_FOR_COOLER 0
    #define DECOUPLING_TEST_MAX_HOLD_VARIANCE 20
    #define DECOUPLING_TEST_MIN_TEMP_RISE 1
    #define KILL_IF_SENSOR_DEFECT 0
    #define RETRACT_ON_PAUSE 5
    #define PAUSE_START_COMMANDS ""
    #define PAUSE_END_COMMANDS ""
    #define SHARED_EXTRUDER_HEATER 0
    #define EXT0_X_OFFSET 0
    #define EXT0_Y_OFFSET 0
    #define EXT0_Z_OFFSET 0
    #define EXT0_STEPS_PER_MM 416.98
    #define EXT0_TEMPSENSOR_TYPE 14
    #define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
    #define EXT0_HEATER_PIN HEATER_0_PIN
    #define EXT0_STEP_PIN ORIG_E0_STEP_PIN
    #define EXT0_DIR_PIN ORIG_E0_DIR_PIN
    #define EXT0_INVERSE 0
    #define EXT0_ENABLE_PIN ORIG_E0_ENABLE_PIN
    #define EXT0_ENABLE_ON 0
    #define EXT0_MIRROR_STEPPER 0
    #define EXT0_STEP2_PIN ORIG_E0_STEP_PIN
    #define EXT0_DIR2_PIN ORIG_E0_DIR_PIN
    #define EXT0_INVERSE2 0
    #define EXT0_ENABLE2_PIN ORIG_E0_ENABLE_PIN
    #define EXT0_MAX_FEEDRATE 50
    #define EXT0_MAX_START_FEEDRATE 20
    #define EXT0_MAX_ACCELERATION 5000
    #define EXT0_HEAT_MANAGER 1
    #define EXT0_PREHEAT_TEMP 205
    #define EXT0_WATCHPERIOD 1
    #define EXT0_PID_INTEGRAL_DRIVE_MAX 230
    #define EXT0_PID_INTEGRAL_DRIVE_MIN 40
    #define EXT0_PID_PGAIN_OR_DEAD_TIME 19.87
    #define EXT0_PID_I 2.35
    #define EXT0_PID_D 42
    #define EXT0_PID_MAX 255
    #define EXT0_ADVANCE_K 0
    #define EXT0_ADVANCE_L 0
    #define EXT0_ADVANCE_BACKLASH_STEPS 0
    #define EXT0_WAIT_RETRACT_TEMP 150
    #define EXT0_WAIT_RETRACT_UNITS 0
    #define EXT0_SELECT_COMMANDS ""
    #define EXT0_DESELECT_COMMANDS ""
    #define EXT0_EXTRUDER_COOLER_PIN -1
    #define EXT0_EXTRUDER_COOLER_SPEED 255
    #define EXT0_DECOUPLE_TEST_PERIOD 12000
    #define EXT0_JAM_PIN -1
    #define EXT0_JAM_PULLUP 0

    #define FEATURE_RETRACTION 1
    #define AUTORETRACT_ENABLED 0
    #define RETRACTION_LENGTH 3
    #define RETRACTION_LONG_LENGTH 13
    #define RETRACTION_SPEED 40
    #define RETRACTION_Z_LIFT 0
    #define RETRACTION_UNDO_EXTRA_LENGTH 0
    #define RETRACTION_UNDO_EXTRA_LONG_LENGTH 0
    #define RETRACTION_UNDO_SPEED 20
    #define FILAMENTCHANGE_X_POS 0
    #define FILAMENTCHANGE_Y_POS 0
    #define FILAMENTCHANGE_Z_ADD  2
    #define FILAMENTCHANGE_REHOME 1
    #define FILAMENTCHANGE_SHORTRETRACT 5
    #define FILAMENTCHANGE_LONGRETRACT 50
    #define JAM_METHOD 1
    #define JAM_STEPS 220
    #define JAM_SLOWDOWN_STEPS 320
    #define JAM_SLOWDOWN_TO 70
    #define JAM_ERROR_STEPS 500
    #define JAM_MIN_STEPS 10
    #define JAM_ACTION 1

    #define RETRACT_DURING_HEATUP true
    #define PID_CONTROL_RANGE 20
    #define SKIP_M109_IF_WITHIN 2
    #define SCALE_PID_TO_MAX 0
    #define TEMP_HYSTERESIS 0
    #define EXTRUDE_MAXLENGTH 160
    #define NUM_TEMPS_USERTHERMISTOR0 0
    #define USER_THERMISTORTABLE0 {}
    #define NUM_TEMPS_USERTHERMISTOR1 0
    #define USER_THERMISTORTABLE1 {}
    #define NUM_TEMPS_USERTHERMISTOR2 0
    #define USER_THERMISTORTABLE2 {}
    #define GENERIC_THERM_VREF 5
    #define GENERIC_THERM_NUM_ENTRIES 33
    #define TEMP_GAIN 0
    #define HEATER_PWM_SPEED 0
    #define COOLER_PWM_SPEED 0

    // ############# Heated bed configuration ########################

    #define HAVE_HEATED_BED 1
    #define HEATED_BED_PREHEAT_TEMP 60
    #define HEATED_BED_MAX_TEMP 80
    #define SKIP_M190_IF_WITHIN 3
    #define HEATED_BED_SENSOR_TYPE 1
    #define HEATED_BED_SENSOR_PIN TEMP_1_PIN
    #define HEATED_BED_HEATER_PIN HEATER_1_PIN
    #define HEATED_BED_SET_INTERVAL 5000
    #define HEATED_BED_HEAT_MANAGER 1
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
    #define HEATED_BED_PID_PGAIN_OR_DEAD_TIME   15.114
    #define HEATED_BED_PID_IGAIN   3.039
    #define HEATED_BED_PID_DGAIN 18.788
    #define HEATED_BED_PID_MAX 255
    #define HEATED_BED_DECOUPLE_TEST_PERIOD 300000
    #define MIN_EXTRUDER_TEMP 150
    #define MAXTEMP 250
    #define MIN_DEFECT_TEMPERATURE -10
    #define MAX_DEFECT_TEMPERATURE 290
    #define MILLISECONDS_PREHEAT_TIME 30000

    // ##########################################################################################
    // ##                             Laser configuration                                      ##
    // ##########################################################################################

    /*
    If the firmware is in laser mode, it can control a laser output to cut or engrave materials.
    Please use this feature only if you know about safety and required protection. Lasers are
    dangerous and can hurt or make you blind!!!

    The default laser driver only supports laser on and off. Here you control the intensity with
    your feedrate. For exchangeable diode lasers this is normally enough. If you need more control
    you can set the intensity in a range 0-255 with a custom extension to the driver. See driver.h
    and comments on how to extend the functions non invasive with our event system.

    If you have a laser - powder system you will like your E override. If moves contain a
    increasing extruder position it will laser that move. With this trick you can
    use existing fdm slicers to laser the output. Laser width is extrusion width.

    Other tools may use M3 and M5 to enable/disable laser. Here G1/G2/G3 moves have laser enabled
    and G0 moves have it disables.

    In any case, laser only enables while moving. At the end of a move it gets
    automatically disabled.
    */

    #define SUPPORT_LASER 0
    #define LASER_PIN -1
    #define LASER_ON_HIGH 1
    #define LASER_WARMUP_TIME 0
    #define LASER_PWM_MAX 255
    #define LASER_WATT 2

    // ##                              CNC configuration                                       ##

    /*
    If the firmware is in CNC mode, it can control a mill with M3/M4/M5. It works
    similar to laser mode, but mill keeps enabled during G0 moves and it allows
    setting rpm (only with event extension that supports this) and milling direction.
    It also can add a delay to wait for spindle to run on full speed.
    */

    #define SUPPORT_CNC 0
    #define CNC_WAIT_ON_ENABLE 300
    #define CNC_WAIT_ON_DISABLE 0
    #define CNC_ENABLE_PIN -1
    #define CNC_ENABLE_WITH 1
    #define CNC_DIRECTION_PIN -1
    #define CNC_DIRECTION_CW 1
    #define CNC_PWM_MAX 255
    #define CNC_RPM_MAX 8000
    #define CNC_SAFE_Z 150

    #define DEFAULT_PRINTER_MODE 0

    // ################ Endstop configuration #####################

    #define MULTI_ZENDSTOP_HOMING 0
    #define ENDSTOP_PULLUP_X_MIN true
    #define ENDSTOP_X_MIN_INVERTING true
    #define MIN_HARDWARE_ENDSTOP_X true
    #define ENDSTOP_PULLUP_Y_MIN true
    #define ENDSTOP_Y_MIN_INVERTING true
    #define MIN_HARDWARE_ENDSTOP_Y true
    #define ENDSTOP_PULLUP_Z_MIN false
    #define ENDSTOP_Z_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Z true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define ENDSTOP_Z2_MINMAX_INVERTING false
    #define MINMAX_HARDWARE_ENDSTOP_Z2 false
    #define ENDSTOP_PULLUP_X_MAX true
    #define ENDSTOP_X_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_X false
    #define ENDSTOP_PULLUP_Y_MAX true
    #define ENDSTOP_Y_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Y false
    #define ENDSTOP_PULLUP_Z_MAX true
    #define ENDSTOP_Z_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Z false
    #define ENDSTOP_PULLUP_X2_MIN true
    #define ENDSTOP_PULLUP_Y2_MIN true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define ENDSTOP_PULLUP_X2_MAX true
    #define ENDSTOP_PULLUP_Y2_MAX true
    #define ENDSTOP_X2_MIN_INVERTING false
    #define ENDSTOP_Y2_MIN_INVERTING false
    #define ENDSTOP_X2_MAX_INVERTING false
    #define ENDSTOP_Y2_MAX_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X2 false
    #define MIN_HARDWARE_ENDSTOP_Y2 false
    #define MAX_HARDWARE_ENDSTOP_X2 false
    #define MAX_HARDWARE_ENDSTOP_Y2 false
    #define X2_MIN_PIN -1
    #define X2_MAX_PIN -1
    #define Y2_MIN_PIN -1
    #define Y2_MAX_PIN -1
    #define Z2_MINMAX_PIN -1



    #define max_software_endstop_r true

    #define min_software_endstop_x false
    #define min_software_endstop_y false
    #define min_software_endstop_z false
    #define max_software_endstop_x true
    #define max_software_endstop_y true
    #define max_software_endstop_z true
    #define DOOR_PIN -1
    #define DOOR_PULLUP 1
    #define DOOR_INVERTING 1
    #define ENDSTOP_X_BACK_MOVE 5
    #define ENDSTOP_Y_BACK_MOVE 5
    #define ENDSTOP_Z_BACK_MOVE 2
    #define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_X_BACK_ON_HOME 19
    #define ENDSTOP_Y_BACK_ON_HOME 25
    #define ENDSTOP_Z_BACK_ON_HOME 0
    #define ALWAYS_CHECK_ENDSTOPS 0
    #define MOVE_X_WHEN_HOMED 0
    #define MOVE_Y_WHEN_HOMED 0
    #define MOVE_Z_WHEN_HOMED 0

    // ################# XYZ movements ###################

    #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 PREVENT_Z_DISABLE_ON_STEPPER_TIMEOUT
    #define INVERT_X_DIR 0
    #define INVERT_X2_DIR 0
    #define INVERT_Y_DIR 0
    #define INVERT_Y2_DIR 0
    #define INVERT_Z_DIR 1
    #define INVERT_Z2_DIR 1
    #define INVERT_Z3_DIR 0
    #define INVERT_Z4_DIR 0
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1
    #define X_MAX_LENGTH 300
    #define Y_MAX_LENGTH 300
    #define Z_MAX_LENGTH 300
    #define X_MIN_POS 0
    #define Y_MIN_POS -65
    #define Z_MIN_POS 0
    #define PARK_POSITION_X 0
    #define PARK_POSITION_Y 0
    #define PARK_POSITION_Z_RAISE 10


    #define DISTORTION_CORRECTION 0
    #define DISTORTION_CORRECTION_POINTS 5
    #define DISTORTION_LIMIT_TO 2
    #define DISTORTION_CORRECTION_R 100
    #define DISTORTION_PERMANENT 1
    #define DISTORTION_UPDATE_FREQUENCY 15
    #define DISTORTION_START_DEGRADE 0.5
    #define DISTORTION_END_HEIGHT 1
    #define DISTORTION_EXTRAPOLATE_CORNERS 0
    #define DISTORTION_XMIN 10
    #define DISTORTION_YMIN 10
    #define DISTORTION_XMAX 190
    #define DISTORTION_YMAX 190

    // ##########################################################################################
    // ##                           Movement settings                                          ##
    // ##########################################################################################

    #define FEATURE_BABYSTEPPING 1
    #define BABYSTEP_MULTIPLICATOR 1

    #define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
    #define DELTA_SEGMENTS_PER_SECOND_MOVE 70 // Less accurate setting for other moves
    #define EXACT_DELTA_MOVES 1

    // Delta settings
    #define DELTA_HOME_ON_POWER 0

    #define DELTASEGMENTS_PER_PRINTLINE 20
    #define STEPPER_INACTIVE_TIME 360L
    #define MAX_INACTIVE_TIME 0L
    #define MAX_FEEDRATE_X 100
    #define MAX_FEEDRATE_Y 100
    #define MAX_FEEDRATE_Z 3
    #define HOMING_FEEDRATE_X 80
    #define HOMING_FEEDRATE_Y 80
    #define HOMING_FEEDRATE_Z 3
    #define HOMING_ORDER HOME_ORDER_XYTZ
    #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 5
    #define ZHOME_X_POS 150
    #define ZHOME_Y_POS 150
    #define ENABLE_BACKLASH_COMPENSATION 0
    #define X_BACKLASH 0
    #define Y_BACKLASH 0
    #define Z_BACKLASH 0
    #define RAMP_ACCELERATION 1
    #define STEPPER_HIGH_DELAY 0
    #define DIRECTION_DELAY 0
    #define STEP_DOUBLER_FREQUENCY 12000
    #define ALLOW_QUADSTEPPING 1
    #define DOUBLE_STEP_DELAY 0 // time in microseconds
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 150
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 150
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 50
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 150
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 150
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 50
    #define INTERPOLATE_ACCELERATION_WITH_Z 0
    #define ACCELERATION_FACTOR_TOP 100
    #define MAX_JERK 8
    #define MAX_ZJERK 0.3
    #define PRINTLINE_CACHE_SIZE 16
    #define MOVE_CACHE_LOW 10
    #define LOW_TICKS_PER_MOVE 250000
    #define EXTRUDER_SWITCH_XY_SPEED 100
    #define DUAL_X_AXIS 0
    #define DUAL_X_RESOLUTION 0
    #define X2AXIS_STEPS_PER_MM 100
    #define FEATURE_TWO_XSTEPPER 0
    #define X2_STEP_PIN   ORIG_E1_STEP_PIN
    #define X2_DIR_PIN    ORIG_E1_DIR_PIN
    #define X2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_TWO_YSTEPPER 0
    #define Y2_STEP_PIN   ORIG_E1_STEP_PIN
    #define Y2_DIR_PIN    ORIG_E1_DIR_PIN
    #define Y2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_TWO_ZSTEPPER 1
    #define Z2_STEP_PIN   ORIG_E1_STEP_PIN
    #define Z2_DIR_PIN    ORIG_E1_DIR_PIN
    #define Z2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_THREE_ZSTEPPER 0
    #define Z3_STEP_PIN   ORIG_E2_STEP_PIN
    #define Z3_DIR_PIN    ORIG_E2_DIR_PIN
    #define Z3_ENABLE_PIN ORIG_E2_ENABLE_PIN
    #define FEATURE_FOUR_ZSTEPPER 0
    #define Z4_STEP_PIN   ORIG_E3_STEP_PIN
    #define Z4_DIR_PIN    ORIG_E3_DIR_PIN
    #define Z4_ENABLE_PIN ORIG_E3_ENABLE_PIN
    #define FEATURE_DITTO_PRINTING 0
    #define USE_ADVANCE 0
    #define ENABLE_QUADRATIC_ADVANCE 0


    // ################# Misc. settings ##################

    #define BAUDRATE 115200
    #define ENABLE_POWER_ON_STARTUP 1
    #define POWER_INVERTING 0
    #define AUTOMATIC_POWERUP 0
    #define KILL_METHOD 1
    #define ACK_WITH_LINENUMBER 1
    #define KEEP_ALIVE_INTERVAL 2000
    #define WAITING_IDENTIFIER "wait"
    #define ECHO_ON_EXECUTE 1
    #define EEPROM_MODE 1
    #undef PS_ON_PIN
    #define PS_ON_PIN -1
    #define JSON_OUTPUT 0

    /* ======== Servos =======
    Control the servos with
    M340 P<servoId> S<pulseInUS>   / ServoID = 0..3  pulseInUs = 500..2500
    Servos are controlled by a pulse width normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
    WARNING: Servos can draw a considerable amount of current. Make sure your system can handle this or you may risk your hardware!
    */
    #define FEATURE_SERVO 1
    #define SERVO0_PIN 11
    #define SERVO1_PIN 6
    #define SERVO2_PIN 5
    #define SERVO3_PIN 4
    #define SERVO0_NEUTRAL_POS  -1
    #define SERVO1_NEUTRAL_POS  -1
    #define SERVO2_NEUTRAL_POS  -1
    #define SERVO3_NEUTRAL_POS  -1
    #define UI_SERVO_CONTROL 0
    #define FAN_KICKSTART_TIME  200
    #define MAX_FAN_PWM 255

            #define FEATURE_WATCHDOG 1

    // #################### 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
    #define EXTRUDER_IS_Z_PROBE 1
    #define Z_PROBE_DISABLE_HEATERS 0
    #define Z_PROBE_BED_DISTANCE 0
    #define Z_PROBE_PIN ORIG_Z_MIN_PIN
    #define Z_PROBE_PULLUP 1
    #define Z_PROBE_ON_HIGH 1
    #define Z_PROBE_X_OFFSET 0
    #define Z_PROBE_Y_OFFSET 60
    #define Z_PROBE_WAIT_BEFORE_TEST 0
    #define Z_PROBE_SPEED 5
    #define Z_PROBE_XY_SPEED 100
    #define Z_PROBE_SWITCHING_DISTANCE 6
    #define Z_PROBE_REPETITIONS 2
    #define Z_PROBE_USE_MEDIAN 0
    #define Z_PROBE_HEIGHT 0.06
    #define Z_PROBE_DELAY 0
    #define Z_PROBE_START_SCRIPT "M340 P0 S650"
    #define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1475"
    #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 10
    #define Z_PROBE_Y1 35
    #define Z_PROBE_X2 290
    #define Z_PROBE_Y2 35
    #define Z_PROBE_X3 10
    #define Z_PROBE_Y3 150
    #define BED_LEVELING_METHOD 1
    #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

    #ifndef SDSUPPORT  // Some boards have sd support on board. These define the values already in pins.h
    #define SDSUPPORT 0
    #undef SDCARDDETECT
    #define SDCARDDETECT -1
    #undef SDCARDDETECTINVERTED
    #define SDCARDDETECTINVERTED 0
    #define SD_EXTENDED_DIR 1 /** Show extended directory including file length. Don't use this with Pronterface! */
    #define SD_RUN_ON_STOP ""
    #define SD_STOP_HEATER_AND_MOTORS_ON_STOP 1
    #define ARC_SUPPORT 1
    #define FEATURE_MEMORY_POSITION 1
    #define FEATURE_CHECKSUM_FORCED 0
    #define FEATURE_FAN_CONTROL 1
    #define FEATURE_FAN2_CONTROL 0
    #define FEATURE_CONTROLLER 11
    #define ADC_KEYPAD_PIN -1
    #define LANGUAGE_EN_ACTIVE 1
    #define LANGUAGE_DE_ACTIVE 0
    #define LANGUAGE_NL_ACTIVE 0
    #define LANGUAGE_PT_ACTIVE 0
    #define LANGUAGE_IT_ACTIVE 0
    #define LANGUAGE_ES_ACTIVE 0
    #define LANGUAGE_FI_ACTIVE 0
    #define LANGUAGE_SE_ACTIVE 0
    #define LANGUAGE_FR_ACTIVE 0
    #define LANGUAGE_CZ_ACTIVE 0
    #define LANGUAGE_PL_ACTIVE 0
    #define LANGUAGE_TR_ACTIVE 0
    #define LANGUAGE_RU_ACTIVE 0
    #define UI_PRINTER_NAME "AM8"
    #define UI_PRINTER_COMPANY ""
    #define UI_PAGES_DURATION 4000
    #define UI_SPEEDDEPENDENT_POSITIONING 0
    #define UI_DISABLE_AUTO_PAGESWITCH 1
    #define UI_AUTORETURN_TO_MENU_AFTER 30000
    #define FEATURE_UI_KEYS 0
    #define UI_ENCODER_SPEED 2
    #define UI_REVERSE_ENCODER 0
    #define UI_KEY_BOUNCETIME 10
    #define UI_KEY_FIRST_REPEAT 500
    #define UI_KEY_REDUCE_REPEAT 50
    #define UI_KEY_MIN_REPEAT 50
    #define FEATURE_BEEPER 0
    #define CASE_LIGHTS_PIN -1
    #define CASE_LIGHT_DEFAULT_ON 1
    #define UI_START_SCREEN_DELAY 1000
    #define UI_DYNAMIC_ENCODER_SPEED 1
            /**
    Beeper sound definitions for short beeps during key actions
    and longer beeps for important actions.
    Parameter is delay in microseconds and the secons is the number of repetitions.
    Values must be in range 1..255
    */
    #define BEEPER_SHORT_SEQUENCE 2,2
    #define BEEPER_LONG_SEQUENCE 8,8
    #define UI_SET_MIN_HEATED_BED_TEMP  30
    #define UI_SET_MAX_HEATED_BED_TEMP 80
    #define UI_SET_MIN_EXTRUDER_TEMP   150
    #define UI_SET_MAX_EXTRUDER_TEMP   250
    #define UI_SET_EXTRUDER_FEEDRATE 2
    #define UI_SET_EXTRUDER_RETRACT_DISTANCE 3


    #define NUM_MOTOR_DRIVERS 0




  • Ok I had to make a minor correction.  My y min is -25 but I put -65.  I also set ENDSTOP_Y_BACK_ON_HOME 0 so it will still know where Y 0 should be.  That is why my nozzle moved back more than it should have before.  The offset is still not being used.

    >So I hope your conditions are met with this. Z_HOME_DIR < 0 && Z_PROBE_PIN == Z_MIN_PIN && FEATURE_Z_PROBE

    You can see in my config above that all of these are true.

    G1 X100 Y100 Z20 F6000 sends the nozzle tip to X100 Y100 and Z20.  G30 just deploys the probe and "homes" Z.  No offsets are taken into account.

    This is what I get after running your commands above...

    14:34:05.060: N19 G28
    14:34:05.065: ok 19
    14:34:19.146: busy:processing (4)
    14:34:20.305: X:0.00 Y:-25.00 Z:0.000 E:0.0000
    14:34:20.305: ok 20
    14:34:31.378: wait (11)
    14:34:31.409: N21 G1 X100 Y100 Z20 F6000
    14:34:31.414: ok 21
    14:35:08.924: wait (37)
    14:35:09.773: N22 G30
    14:35:09.778: ok 22
    14:35:25.870: busy:processing (8)
    14:35:27.366: Z-probe:19.999 X:100.00 Y:100.00
    14:35:33.405: wait (7)
  • Condition is met.

    Found your error. You said
    #define EXTRUDER_IS_Z_PROBE 1
    which means that the nozzle is the probe and you should not apply any offset. Set it to 0 and it should work.

  • edited September 2020
    That did it as far as homing. The nozzle went to X 150 Y150 then moved forward 60 mm and the BLTouch was at X 150 and Y150.

    Now when I do G32 it puts the nozzle where it wants to probe then moves the bed so the probe is where it needs to be then it fails.  Here are the logs.

    8:42:32.803: N19 G32
    8:42:32.808: ok 19
    8:42:53.063: busy:processing (8)
    8:42:54.162: X:0.00 Y:-25.00 Z:0.000 E:0.0000
    8:43:03.120: busy:processing (5)
    8:43:03.727: Error:z-probe triggered before starting probing.
    8:43:03.732: Error:Probing had returned errors - autoleveling canceled.
    8:43:03.792: RequestStop:
    8:43:07.142: busy:processing (2)
    8:43:07.195: TargetExtr0:0
    8:43:07.285: fatal:G32 leveling failed! - Printer stopped and heaters disabled due to this error. Fix error and restart with M999. (2)
  • edited September 2020
    I got the illegal position error so I reduced my Y axis size so Y 0 will actually be 35mm into the y axis.  I'll lose some print area, but I've never needed the entire 300mm area anyway lol.  

    The only problem I have now is when I use G32 the probe is deploying before it is in position.  It moves the nozzle to X 20 Y 20, deploys the probe, lowers the nozzle to the bed then it moves to the 60 mm offset position.  Then it fails because the probe was already deployed before it was ready to probe.

    What I expect to happen is the nozzle goes to X 20 Y 20 then it moves 60 mm forward to account for the offset then it deploys the probe then it lowers the gantry to start probing.  This is definitely not happening.

    How do I get it to deploy the probe and lower the gantry only after the bed moves to the offset position and is ready to probe?

    Here are the logs:

    10:51:53.871: Error:z-probe triggered before starting probing.
    10:51:53.876: Error:Probing had returned errors - autoleveling canceled.
    10:51:53.937: RequestStop:
    10:51:56.225: busy:processing (2)
    10:51:57.339: TargetExtr0:0
    10:51:57.416: fatal:G32 leveling failed! - Printer stopped and heaters disabled due to this error. Fix error and restart with M999.
    10:52:14.568: wait (18)
  • edited September 2020
    I finally got it!  #define Z_PROBE_BED_DISTANCE 10 is what fixed my issues with auto bed leveling.  This was misleading to me on the web site because it says "[mm] = Max. distance to go back for next test".  I did not realize this was the setting for how high the extruder would go up when traveling to the next probing position.
  • It says max distance because if you start G32 higher than that it will lower to that value. But glad it is now working all correctly.
  • edited September 2020
    Auto bed level is on and even though I see the z steppers moving as it lays the first layer down it will not lay the first layer level.  I spent a couple of hours leveling and testing and adjusting and when I did G32 and all 4 corners were within 0.1mm of each other I decided to start a print.  The first layer on the back of the bed was way closer than the front and the front left didn’t even stick to the bed.  This was happening when I had an inductive probe just to the left of the nozzle before the BLTouch and the main reason I switched to the BLTouch and new configuration.  This is beyond frustrating!

    Why is this not working?!
  • Have you checked if your bed is completely flat?
    Use a opaque rular you put at different positions and use a light from behind to see the gaps.

    In case it is not that flat as you think you can use G33 distortion map to correct for it. Also not that bed shape can change between hot and cold so do measurements in state you run the print. With bltouch this is possible while inductive gets disturbed by bed heater normally.
  • G33 may be what I need because my bed is definitely not flat lol.  I'll try that and see.  I thought G32 and turning on autocorrect would account for that.  I do see the Z steppers moving a tiny amount when moving across the bed in a print so I thought it would "autocorrect" for those low areas.

    I just spent a few hours testing and adjusting my bed and it is definitely not flat but it is always the front left that does not stick even if I raise the front left of the bed higher.  I had to drop the left stepper down a click during the print to get it to stick, but once it got past the low corner I raised it back up a click and it's printing.

    Also I did some adjustments to my Z steppers.  I lowered the current because they were getting quite warm then I put a belt and gears across the top to keep both steppers in sync.  I think one was not moving as much as the other all the time.

    Thanks for all your help.  I do not like using a raft for certain projects so printing evenly is a must for some.
  • G32 just takes a plane that reduces the average error to a minimum. But that still means the distances are in some areas higher and other lower. A trick that works if it is not that bad is also to use a higher first layer like 0.3mm. That way the difference are not that important and it will at least stick also for first layer.
  • I finally got around to enabling distortion correction and doing a G33.  After that my printer cannot move smoothly any more.  Moving in one direction it will stutter until it gets to its destination.  I disabled distortion correction and reset EEPROM and it is smooth again.

    Here is what I did:

    #define DISTORTION_CORRECTION 1
    #define DISTORTION_CORRECTION_POINTS 5 (also tried 4)
    #define DISTORTION_LIMIT_TO 2
    #define DISTORTION_CORRECTION_R 100
    #define DISTORTION_PERMANENT 1
    #define DISTORTION_UPDATE_FREQUENCY 15
    #define DISTORTION_START_DEGRADE 0.5
    #define DISTORTION_END_HEIGHT 1
    #define DISTORTION_EXTRAPOLATE_CORNERS 0
    #define DISTORTION_XMIN 5
    #define DISTORTION_YMIN 40
    #define DISTORTION_XMAX 295
    #define DISTORTION_YMAX 255

    This made the print level across the entire bed, but had the below issues.

    When I first loaded that firmware it moved the X axis really slow for a bit then it started working fine again but after doing a G33 and storing to EEPROM it stuttered really bad in any direction.  I reduced the count from 5 to 4 thinking maybe it was too much for my boards memory.  No joy.

    I then tried this:

    #define DISTORTION_CORRECTION 1
    #define DISTORTION_CORRECTION_POINTS 4
    #define DISTORTION_LIMIT_TO 2
    #define DISTORTION_CORRECTION_R 100
    #define DISTORTION_PERMANENT 1
    #define DISTORTION_UPDATE_FREQUENCY 15
    #define DISTORTION_START_DEGRADE 0.5
    #define DISTORTION_END_HEIGHT 1
    #define DISTORTION_EXTRAPOLATE_CORNERS 0
    #define DISTORTION_XMIN 5
    #define DISTORTION_YMIN 40
    #define DISTORTION_XMAX 295
    #define DISTORTION_YMAX 255

    #define FEATURE_AUTOLEVEL 0

    This did the exact same thing.  I even tried G33 without writing to EEPROM thinking EEPROM was overloaded.

    I disabled distortion correction and enabled auto bed level and it works fine except it no longer prints level, but all movements are smooth.
  • In your case of cartesian printer moves are split in 10mm segments until DISTORTION_END_HEIGHT and at each end point the correct height is computed and put into the move equation. I do not really expect this to be the main problem - you can print with lots of 10mm moves normally as well e.g. happening in figures.

    What might be a problem is if you have bigger corrections, then z speed might limit motion speed. So you should check if G33 ha sit's values set correctly. All should swing around 0 and have a maximum value of maybe +/-0.1mm. Especially since you fade out within 0.5mm of z motion.

    To check values send G33 L0 and see the stored heights. To get them around 0 you normally rung G32 S2 and and G33 with same z probe height.
  • Here is what I have so far.

    If I just do G33 all areas of the bed print perfect on the first layer, but I get stuttering when the nozzle is traveling (not actually printing).  If I slow the print to 40 mm/s max travel speed then the stuttering is not as rough, but it still does it.

    If I do G32 S0 followed by G33, the stuttering goes away but the z offset has to be adjusted to get the nozzle closer to the bed and the left side of the bed does not print as close as the right but the front left did not even stick all the way.

    Once I noticed the z offset needed adjusting I changed it from 0.25 to 0.45 and did G32 S0 followed by G33 again and it seemed to be much better but way to close.

    Every time I adjust the z height I recalibrate with G32 S0 then G33.  It's still not as good as just G33, but it is improving.  I'm still working on getting the corners all the same height.  For some reason the front left is always lower.

    After doing this many times, the bottom left corner is still not sticking well.  But it is closer than it ever has been.  I even raised the bottom left corner closer to the nozzle then ran G32 S0 and G33 again and it does the same thing.

    Again, if I only do G33 and not G32 S0 the first layer is perfect but it stutters.
  • As said check G33 L0 and see values. If your printer allows higher z speeds in crease max Z speed. I guess that is causing the stuttering when it is limiting speed instead of xy speed you wanted. That would also be why it is more smoothely with low speeds. One G33 is set you don't need to redo it. 

    Last tip for the "bad" area. You can modify G33 values manually. G33 L0 lists the commands to reset that leveling. But if you replace there a z for a position that one will be used then. So narrow areas that stick bad a bit manually. Make sure to use latest dev version - some time ago I fixed a bug with leveling not exactly returning to old position in some cases. Might be the reason for having a bad edge. Or reason is that that part is a bit more flexible or adhesion is worse...
  • If I only G33 there is no bad area, just stuttering.

    I increased z speed to 10 mm/s and it does not help at all.  I would have to manually edit my gcode to slow x/y movement to 40 mm/s on layers below 1mm.  Even then it pauses every 10mm but the jerk of it starting back up is not as bad.

    I tried to do all my G32 and G33 with a cold bed incase the plastic needle in my BLtouch is being affected by the heat.  I know the bed changes with heat, but for testing purposes I don't mind.  It seems to be better (but not perfect) so I assume the BLTouch can't handle 60 degree beds.  

    I will try editing the map to account for the low areas and let you know.

    Here are my measurements.  Which way do I need to go to get the front left a bit closer?  

    This is my G32 S0:

    11:09:46.907: Z-probe:9.910 X:10.00 Y:10.00
    11:09:53.623: Z-probe:9.946 X:10.00 Y:70.00
    11:10:00.378: Z-probe:10.377 X:10.00 Y:130.00
    11:10:07.231: Z-probe:10.703 X:10.00 Y:190.00
    11:10:14.204: Z-probe:10.900 X:10.00 Y:250.00
    11:10:25.469: Z-probe:10.114 X:80.00 Y:10.00
    11:10:32.117: Z-probe:10.022 X:80.00 Y:70.00
    11:10:38.944: Z-probe:10.332 X:80.00 Y:130.00
    11:10:45.841: Z-probe:10.570 X:80.00 Y:190.00
    11:10:52.684: Z-probe:10.676 X:80.00 Y:250.00
    11:11:03.947: Z-probe:10.307 X:150.00 Y:10.00
    11:11:10.764: Z-probe:10.235 X:150.00 Y:70.00
    11:11:17.492: Z-probe:10.284 X:150.00 Y:130.00
    11:11:24.282: Z-probe:10.490 X:150.00 Y:190.00
    11:11:31.151: Z-probe:10.652 X:150.00 Y:250.00
    11:11:42.576: Z-probe:10.584 X:220.00 Y:10.00
    11:11:49.343: Z-probe:10.416 X:220.00 Y:70.00
    11:11:56.105: Z-probe:10.391 X:220.00 Y:130.00
    11:12:02.944: Z-probe:10.525 X:220.00 Y:190.00
    11:12:09.781: Z-probe:10.647 X:220.00 Y:250.00
    11:12:21.212: Z-probe:10.874 X:290.00 Y:10.00
    11:12:28.054: Z-probe:10.661 X:290.00 Y:70.00
    11:12:34.925: Z-probe:10.496 X:290.00 Y:130.00
    11:12:41.732: Z-probe:10.546 X:290.00 Y:190.00
    11:12:48.542: Z-probe:10.557 X:290.00 Y:250.00

    This is my G33 L0 from the G33 directly following G32 S0:

    11:16:05.542: G33 X10.00 Y10.00 Z0.195
    11:16:05.544: G33 X10.00 Y70.00 Z0.252
    11:16:05.547: G33 X10.00 Y130.00 Z-0.037
    11:16:05.549: G33 X10.00 Y190.00 Z-0.370
    11:16:05.552: G33 X10.00 Y250.00 Z-0.570
    11:16:05.554: G33 X80.00 Y10.00 Z0.052
    11:16:05.557: G33 X80.00 Y70.00 Z0.207
    11:16:05.557: G33 X80.00 Y130.00 Z0.105
    11:16:05.560: G33 X80.00 Y190.00 Z-0.095
    11:16:05.562: G33 X80.00 Y250.00 Z-0.270
    11:16:05.565: G33 X150.00 Y10.00 Z-0.063
    11:16:05.569: G33 X150.00 Y70.00 Z0.102
    11:16:05.572: G33 X150.00 Y130.00 Z0.147
    11:16:05.574: G33 X150.00 Y190.00 Z0.055
    11:16:05.577: G33 X150.00 Y250.00 Z-0.137
    11:16:05.577: G33 X220.00 Y10.00 Z-0.247
    11:16:05.580: G33 X220.00 Y70.00 Z0.000
    11:16:05.582: G33 X220.00 Y130.00 Z0.125
    11:16:05.585: G33 X220.00 Y190.00 Z0.067
    11:16:05.588: G33 X220.00 Y250.00 Z-0.007
    11:16:05.590: G33 X290.00 Y10.00 Z-0.465
    11:16:05.593: G33 X290.00 Y70.00 Z-0.162
    11:16:05.595: G33 X290.00 Y130.00 Z0.080
    11:16:05.596: G33 X290.00 Y190.00 Z0.063
    11:16:05.600: G33 X290.00 Y250.00 Z0.150



Sign In or Register to comment.