Changing Homing behaviour July 30, 2015 08:32AM |
Registered: 8 years ago Posts: 22 |
#define LEFT_PROBE_BED_POSITION 27 #define RIGHT_PROBE_BED_POSITION 177 #define BACK_PROBE_BED_POSITION 197 #define FRONT_PROBE_BED_POSITION 27
#define X_PROBE_OFFSET_FROM_EXTRUDER 0 #define Y_PROBE_OFFSET_FROM_EXTRUDER 22 #define Z_PROBE_OFFSET_FROM_EXTRUDER -5
G1 Z2 F100; raise Z to clear probe points G28 X0 Y0; home X and Y axis G1 X0 F100; go to probe deployment position G1 Y27 F100; go to probe deployment position G28 Z0; Home Z axis G29; probe bed
Re: Changing Homing behaviour August 04, 2015 08:06AM |
Registered: 8 years ago Posts: 81 |
Re: Changing Homing behaviour August 05, 2015 06:03PM |
Registered: 8 years ago Posts: 22 |
when homing all axis (G28)In the comment for Z homing, so I pressed the homing button for all axis at once and voila! it now probes in a safe place above something inductive
Bed x: 0.00 y: 57.00 z: 4.22 Bed x: 197.00 y: 57.00 z: 4.64 Bed x: 197.00 y: 200.00 z: 4.54 Bed x: 0.00 y: 200.00 z: 5.06 Eqn coefficients: a: -0.00 b: 0.00 d: 4.31 planeNormal x: 0.00 y: -0.00 z: 1.00 echo:endstops hit: X:0.07 Z:5.06
Re: Changing Homing behaviour August 06, 2015 09:54AM |
Registered: 9 years ago Posts: 476 |
Re: Changing Homing behaviour August 08, 2015 02:47PM |
Registered: 8 years ago Posts: 81 |
Quote
jimmyclarke
Hi
Thanks for your response, after reading what feels like every internet page on auto leveling I finally found where I was going wrong!
I had been homing using Repetier and it's individual buttons for X Y and Z as I figured that's be the safest option, but I just saw
when homing all axis (G28)In the comment for Z homing, so I pressed the homing button for all axis at once and voila! it now probes in a safe place above something inductive
So I now have safe homing and Grid formation leveling, however the last bug I have is after the G29 sequence, the probe stays over the last point, which leaves the bed at X0.5, Y200, Z5.06 BUT the printer thinks it is at X0.5, Y0, Z5.06 meaning I can't get the Y axis back over to start printing?
Also how do I know whether G29 has calculated correctly? Would I expect to see the Z value in the G-Code editor once an item is sliced, or is this all done transparently?
My Output after sending G29:
Bed x: 0.00 y: 57.00 z: 4.22 Bed x: 197.00 y: 57.00 z: 4.64 Bed x: 197.00 y: 200.00 z: 4.54 Bed x: 0.00 y: 200.00 z: 5.06 Eqn coefficients: a: -0.00 b: 0.00 d: 4.31 planeNormal x: 0.00 y: -0.00 z: 1.00 echo:endstops hit: X:0.07 Z:5.06
I can post a video if that helps, but has anyone ran into a lost Y axis before?
Cheers
Re: Changing Homing behaviour August 09, 2015 03:29PM |
Registered: 9 years ago Posts: 53 |
Quote
wderoxas
My printer just needs:
G28 - It will home on X and Y then go to the middle of the bed to home the Z. Not sure if this is due to SAFE_HOMING option....
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. // When defined, it will: // - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - If stepper drivers timeout, it will need X and Y homing again before Z homing // - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Block Z homing only when the probe is outside bed area. #ifdef Z_SAFE_HOMING #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28) #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
#define LEFT_PROBE_BED_POSITION 15 #define RIGHT_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 180 #define FRONT_PROBE_BED_POSITION 20 ........... [sensor -- to the right and forward of hot-end] #define X_PROBE_OFFSET_FROM_EXTRUDER -30 #define Y_PROBE_OFFSET_FROM_EXTRUDER 6 #define Z_PROBE_OFFSET_FROM_EXTRUDER 0
Re: Changing Homing behaviour August 09, 2015 03:54PM |
Registered: 9 years ago Posts: 53 |
C:\Users\Mark\AppData\Local\Temp\build1479576133429720467.tmp\Configuration.h:444:8: error: #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" ^ C:\Users\Mark\AppData\Local\Temp\build1479576133429720467.tmp\Configuration.h:457:8: error: #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
Re: Changing Homing behaviour August 09, 2015 05:06PM |
Registered: 8 years ago Posts: 81 |
Quote
55rebel
hmmm?.... now that I'm looking at the defined rectangle in Marlin, they seem to be reversed. My X axis end stop is on the right side of printer, and Y stop on front.
.....I'll get back.
P.S.
Well, reversing X & Y probe points, to where they would seem more friendly to my build, throws up an error when compiling:
C:\Users\Mark\AppData\Local\Temp\build1479576133429720467.tmp\Configuration.h:444:8: error: #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" ^ C:\Users\Mark\AppData\Local\Temp\build1479576133429720467.tmp\Configuration.h:457:8: error: #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
What am I missing here?! ....I'm confused
Re: Changing Homing behaviour August 10, 2015 06:04PM |
Registered: 9 years ago Posts: 53 |
Re: Changing Homing behaviour August 10, 2015 10:12PM |
Registered: 9 years ago Posts: 53 |
//=========================================================================== //=============================Mechanical Settings=========================== //=========================================================================== // Uncomment the following line to enable CoreXY kinematics // #define COREXY // coarse Endstop Settings #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors #ifndef ENDSTOPPULLUPS // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined #define ENDSTOPPULLUP_XMAX #define ENDSTOPPULLUP_YMAX #define ENDSTOPPULLUP_ZMAX #define ENDSTOPPULLUP_XMIN #define ENDSTOPPULLUP_YMIN // #define ENDSTOPPULLUP_ZMIN #endif #ifdef ENDSTOPPULLUPS // #define ENDSTOPPULLUP_XMAX // #define ENDSTOPPULLUP_YMAX // #define ENDSTOPPULLUP_ZMAX #define ENDSTOPPULLUP_XMIN #define ENDSTOPPULLUP_YMIN //#define ENDSTOPPULLUP_ZMIN #endif // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. //#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS // Disable max endstops for compatibility with endstop checking routine #if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS) #define DISABLE_MAX_ENDSTOPS #endif // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 #define X_ENABLE_ON 0 #define Y_ENABLE_ON 0 #define Z_ENABLE_ON 0 #define E_ENABLE_ON 0 // For all extruders // Disables axis when it's not being used. #define DISABLE_X false #define DISABLE_Y false #define DISABLE_Z false #define DISABLE_E false // For all extruders #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled #define INVERT_X_DIR true // for Mendel set to false, for Orca set to true #define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false #define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true #define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false // ENDSTOP SETTINGS: // Sets direction of endstops when homing; 1=MAX, -1=MIN #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1 #define min_software_endstops false // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. // Travel limits after homing #define X_MAX_POS 222 #define X_MIN_POS 0 #define Y_MAX_POS 200 #define Y_MIN_POS 0 #define Z_MAX_POS 185 #define Z_MIN_POS 0 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) //============================= Bed Auto Leveling =========================== #define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. #ifdef ENABLE_AUTO_BED_LEVELING // There are 2 different ways to pick the X and Y locations to probe: // - "grid" mode // Probe every point in a rectangular grid // You must specify the rectangle, and the density of sample points // This mode is preferred because there are more measurements. // It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive // - "3-point" mode // Probe 3 arbitrary points on the bed (that aren't colinear) // You must specify the X & Y coordinates of all 3 points #define AUTO_BED_LEVELING_GRID // with AUTO_BED_LEVELING_GRID, the bed is sampled in a // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid // and least squares solution is calculated // Note: this feature occupies 10'206 byte #ifdef AUTO_BED_LEVELING_GRID // set the rectangle in which to probe #define LEFT_PROBE_BED_POSITION 15 #define RIGHT_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 180 #define FRONT_PROBE_BED_POSITION 20 // set the number of grid points per dimension // I wouldn't see a reason to go above 3 (=9 probing points on the bed) #define AUTO_BED_LEVELING_GRID_POINTS 3 #else // not AUTO_BED_LEVELING_GRID // with no grid, just probe 3 arbitrary points. A simple cross-product // is used to esimate the plane of the print bed #define ABL_PROBE_PT_1_X 15 #define ABL_PROBE_PT_1_Y 180 #define ABL_PROBE_PT_2_X 15 #define ABL_PROBE_PT_2_Y 20 #define ABL_PROBE_PT_3_X 170 #define ABL_PROBE_PT_3_Y 20 #endif // AUTO_BED_LEVELING_GRID // these are the offsets to the probe relative to the extruder tip (Hotend - Probe) // X and Y offsets must be integers #define X_PROBE_OFFSET_FROM_EXTRUDER -30 #define Y_PROBE_OFFSET_FROM_EXTRUDER 6 #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 #define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance. // Be sure you have this distance over your Z_MAX_POS in case #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min #define Z_RAISE_BEFORE_PROBING 5 //How much the extruder will be raised before traveling to the first probing point. #define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it. // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile. // #define PROBE_SERVO_DEACTIVATION_DELAY 300 //If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing, //it is highly recommended you let this Z_SAFE_HOMING enabled!!! #define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area. // When defined, it will: // - Allow Z homing only after X and Y homing AND stepper drivers still enabled // - If stepper drivers timeout, it will need X and Y homing again before Z homing // - Position the probe in a defined XY point before Z Homing when homing all axis (G28) // - Block Z homing only when the probe is outside bed area. #ifdef Z_SAFE_HOMING #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28) #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28) #endif #ifdef AUTO_BED_LEVELING_GRID // Check if Probe_Offset * Grid Points is greater than Probing Range #if X_PROBE_OFFSET_FROM_EXTRUDER < 0 #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION)) #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #endif #else #if ((X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION)) #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #endif #endif #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0 #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION)) #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #endif #else #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION)) #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS" #endif #endif #endif #endif // ENABLE_AUTO_BED_LEVELING // The position of the homing switches //#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used //#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0) //Manual homing switch locations: // For deltabots this means top and center of the Cartesian print volume. #define MANUAL_X_HOME_POS 0 #define MANUAL_Y_HOME_POS 0 #define MANUAL_Z_HOME_POS 0 //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. //// MOVEMENT SETTINGS #define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E #define HOMING_FEEDRATE {50*60, 50*60, 50, 0} // set the homing speeds (mm/min) // default settings #define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,90} // default steps per unit for Ultimaker #define DEFAULT_MAX_FEEDRATE {250, 250, 2, 22} // (mm/sec) #define DEFAULT_MAX_ACCELERATION {1000,1000,5,1000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot. #define DEFAULT_ACCELERATION 500 // X, Y, Z and E max acceleration in mm/s^2 for printing moves #define DEFAULT_RETRACT_ACCELERATION 500 // X, Y, Z and E max acceleration in mm/s^2 for retracts // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). // For the other hotends it is their distance from the extruder 0 hotend. // #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis // #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis // The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously) #define DEFAULT_XYJERK 20.0 // (mm/sec) #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) //=========================================================================== //=============================Additional Features=========================== //=========================================================================== ..........................
Re: Changing Homing behaviour August 11, 2015 12:37AM |
Registered: 8 years ago Posts: 81 |
Re: Changing Homing behaviour August 11, 2015 12:43AM |
Registered: 8 years ago Posts: 81 |
Re: Changing Homing behaviour August 11, 2015 04:22PM |
Registered: 9 years ago Posts: 53 |
Quote
this puts the sensor at the right front of your hotend. Does this correspond to your sensors location?
Quote
And another thing, im not sure if your z probe/sensor needs it, but you might want to check if it needs the #define ENDSTOPPULLUP_ZMIN
Re: Changing Homing behaviour August 11, 2015 09:03PM |
Registered: 8 years ago Posts: 81 |
Re: Changing Homing behaviour August 12, 2015 12:07AM |
Registered: 8 years ago Posts: 81 |
Re: Changing Homing behaviour August 12, 2015 08:37PM |
Registered: 9 years ago Posts: 53 |
// set the rectangle in which to probe #define LEFT_PROBE_BED_POSITION 15 #define RIGHT_PROBE_BED_POSITION 170 #define BACK_PROBE_BED_POSITION 180 #define FRONT_PROBE_BED_POSITION 20
// set the rectangle in which to probe #define LEFT_PROBE_BED_POSITION 170 #define RIGHT_PROBE_BED_POSITION 15 #define BACK_PROBE_BED_POSITION 20 #define FRONT_PROBE_BED_POSITION 180
Re: Changing Homing behaviour August 13, 2015 02:42AM |
Registered: 8 years ago Posts: 81 |
Re: Changing Homing behaviour August 13, 2015 09:14AM |
Registered: 9 years ago Posts: 53 |
Re: Changing Homing behaviour September 07, 2015 11:20PM |
Registered: 9 years ago Posts: 116 |